我想知道应该应用什么正则表达式来替换1 - 55 of 55
只能进入55
雅虎管道的正则表达式模块。
谢谢
匹配
\d+ - (\d+) of \1
和
$1
你可以尝试匹配这个:
\d+ - (\d+) of \1
并替换为$1
,这是第 1 组捕获的内容。
是\d
数字字符类,+
是一个或多个重复。(…)
是一个捕获组,而 是指\1
该组匹配的内容。所以这将匹配如下字符串:
num1 - num2 of num2
| |
\________/ must match
这个模式是一个小的修改,它的空白匹配更加灵活:
\d+\s+-\s+(\d+)\s+of\s+\1
它与前面的模式类似,但是之前我们只有一个文字空格字符,我们现在使用\s+
,这是一个匹配任意数量空白字符的非空序列的模式。这包括换行符、制表符等。
如果第三个数字不必与第二个数字相同,则只需使用 another\d+
而不是\1
.
\d+\s+-\s+\d+\s+of\s+(\d+)
现在这将匹配字符串,如"1 - 20 of 149"
, 自由的间距。括号现在移动以匹配第三个数字,因此如果整个字符串要替换为该数字(149
在这种情况下),只需替换为$1
。
如果你想单独捕获所有 3 个数字,你可以这样写:
(\d+)\s+-\s+(\d+)\s+of\s+(\d+)
\___/ \___/ \___/
1 2 3
现在第一个数字被第 1 组捕获,第二个数字被第 2 组捕获,第三个数字被第 3 组捕获。