我有这个正则表达式
(\w*):([0-9]*).*\1:-([0-9]*)
匹配以下字符串
start foo:100 xxxxx bar:300 yyyyy bar:-600 jjjjjj foo:-200 end
给我3组
foo
100
200
如何更改正则表达式,以便获得2个匹配项,如
foo
100
200
bar
300
600
答案 0 :(得分:1)
答案 1 :(得分:1)
(\w*):([0-9]+)(?=.*\1:-([0-9]*))
试试这个。一旦你捕获或向前移动正则表达式引擎就不会回溯。所以你可以捕获第一部分并将其余部分放在前瞻中并捕获它。这种方式引擎只会断言前面有类似的组但它不会前进。
参见演示。