当仅允许最后一场比赛时,在正则表达式中重复捕获组(解决方法)

我得到了一个像

*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)

下一篇: Regex fails to capture all groups