0

我使用记事本++,我需要一个正则表达式来匹配连续的数字

例子:

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

因此正则表达式会找到这些匹配项,而不是以下行:第 3-9 节或第 26-32 节等。

我使用 \d+,但不知道如何将相同的值逐一增加。

4

2 回答 2

1

正则表达式匹配文本,而不是数字。因此,您不能仅使用正则表达式来执行此操作(除非您拼出所有可能的组合)。您需要一种脚本语言,将匹配的文本转换为整数并进行比较。

例如,在 Python 中:

for potentialmatch in re.finditer(r"(\d+)-(\d+)", mytext):
    if int(potentialmatch.group(1)) + 1 == int(potentialmatch.group(2)):
        # Match found
于 2013-01-21T08:20:16.653 回答
1

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

不过,您可以生成一个:

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

在 PowerShell 中生成一个正则表达式,它将匹配从 1-2 到 99-100 的所有内容。

于 2013-01-21T08:20:54.543 回答