正则表达式 - 捕获所有重复的迭代

时间:2015-08-13 15:30:16

标签: regex capturing-group

我有一个像这样的变量

var = "!123abcabc123!"

我试图抓住所有的' 123'和' abc'在这个var。

这个正则表达式(abc|123)检索我想要的但是......

我的问题是:当我尝试这个正则表达式!(abc|123)*!时,它只检索最后一次迭代。我该怎么做才能得到这个输出

MATCH 1
1.  [1-4]   `123`
MATCH 2
1.  [4-7]   `abc`
MATCH 3
1.  [7-10]  `abc`
MATCH 4
1.  [10-13] `123`

https://regex101.com/r/mD4vM8/3

谢谢!

1 个答案:

答案 0 :(得分:6)

如果您的语言支持\G,那么您可以免费使用此功能。

(?:!|\G(?!^))\K(abc|123)(?=(?:abc|123)*!)

DEMO