正则表达式只增加一个字符串(连续数字)

时间:2013-01-21 08:18:46

标签: regex search notepad++

我使用Notepad ++,我需要一个正则表达式才能匹配连续数字

示例:

verses 3-4
verses 11-12
verses 26-27

所以正则表达式找到这些匹配,行,如:3-9节,或26-32节等等。

我使用\ d +,但不知道如何只增加一个。

2 个答案:

答案 0 :(得分:1)

正则表达式匹配文本,而非数字。因此,单独使用正则表达式无法做到这一点(除非您拼写出所有可能的组合)。您需要一种脚本语言,将匹配的文本转换为整数并进行比较。

例如,在Python中:

for potentialmatch in re.finditer(r"(\d+)-(\d+)", mytext):
    if int(potentialmatch.group(1)) + 1 == int(potentialmatch.group(2)):
        # Match found

答案 1 :(得分:1)

除了使用包含所有此类选项的正则表达式之外,你不能这样做。

你可以生成一个:

(1..99 | %{"$_-$($_+1)"}) -join '|'
PowerShell中的

产生的正则表达式将匹配1-2到99-100之间的所有内容。