【问题标题】:Regex - capture all repeated iteration正则表达式 - 捕获所有重复的迭代
【发布时间】:2015-11-06 16:14:14
【问题描述】:

我有一个这样的变量

var = "!123abcabc123!"

我正在尝试捕获此变量中的所有“123”和“abc”。

这个正则表达式(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

谢谢!!

【问题讨论】:

  • 这取决于您使用的语言。如果是.NET,所有捕获的文本都在Captures属性中。

标签: regex capturing-group


【解决方案1】:

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

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

DEMO

【讨论】:

  • 你能解释一下这个正则表达式的作用吗?
  • 您可能会在我附加的链接中看到右侧的说明.. 抱歉,我有一些工作..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 2011-03-11
  • 2017-01-07
相关资源
最近更新 更多