![]() |
1
7
使用全局正则表达式(这是什么
在您的例子中,正则表达式引擎从字符串的开头开始,一直前进到
First Look at How a Regex Engine Works Internally
如果你
必须
我有另一个解决方案,它可以获得五个匹配,而不必使用偏移量,但我在这里添加它只是出于好奇,我可能不会在生产代码中使用它(它也是一个有点复杂的regex)。您可以使用使用 lookbehind 寻找数字 之前 当前位置,以及 captures
让我们看看这个正则表达式:
因为lookarounds是零宽度的,并且不移动regex位置,所以这个正则表达式将匹配5次:引擎将前进,直到
请注意,每个“匹配”的数字顺序不对!这是因为lookback中的capture组变为backreference 1,而整个匹配是backreference 0。不过,我们可以按正确的顺序重新组合:
|
![]() |
2
2
|
![]() |
3
1
对于这种特殊的情况,我认为自己动手要简单得多:
|
![]() |
4
1
只是为了好玩,另一种方法是:
|