当仅允许最后一场比赛时,在正则表达式中重复捕获组(解决方法)
我得到了一个像
*hello world,hello2 world2,hello3 world3,..., helloN worldN *
我想匹配repitedly hello worlds,并且只在全局(/ g)级别捕获多行字符串中的hello单词,其中该模式偶尔会出现
如果我用hello捕获的*(?:(w+)sw+,?)+*
定义一个重复的组*(?:(w+)sw+,?)+*
由于http://www.regular-expressions.info/captureall.html只有最后一个helloN匹配
如果我定义一个捕获组寻找重复的hellos *((w+)+)*
然后我的问题是匹配没有完成,因为它正在检查*hello world,hello2 world2,hello3 world3*
带有该模式的星号
结果应该是
- hello hello2 hello3 ... hello n
我认为关键是找到一种强制匹配重复组的方法,而捕获的组返回多个输出
用这个:
(?<=[,*])(w+)(?=sw+[,*])
请参阅DEMO
链接地址: http://www.djcxy.com/p/74841.html上一篇: Repeated capturing groups in regex when only last match is allowed (workaround)