我不确定这在Regex中是否可行,但我想要类似......
输入:
a="abc1"
...some stuff...
a="def1"
...some stuff...
a="ghi1"
...some stuff...
b="123a"
...some stuff...
a="abc2"
...some stuff...
a="def2"
...some stuff...
a="ghi2"
...some stuff...
b="123b"
...some stuff...
a="abc3"
...some stuff...
a="def3"
...some stuff...
a="ghi3"
...some stuff...
b="123c"
...some stuff...
想:
match_1 = 123a
match_1_1 = abc1
match_1_2 = def1
match_1_3 = ghi1
match_2 = 123b
match_2_1 = abc2
match_2_2 = def2
etc.
尝试:
a="([^"]+)"[\D\W\S]+b="([^"]+)"
这将获得每个部分的第一个“a = abc ...”和“b = 123 ......”,但不会将“def ...”组合在一起。
正则表达式的味道是JMeter中的那个,我相信它是Perl。
感谢任何建议或评论, :)
答案 0 :(得分:1)
这是否适合您的需要?
(?:a="([^"]+)".*?)(?:a="([^"]+)".*?)(?:a="([^"]+)".*?)b="([^"]+)"
你可以看到它here on Regexr
这些组按照它们在输入中的显示顺序排列
第1组= abc1
第2组= def1
第3组= ghi1
第4组= 123a
您需要打开\ s(dotall)修饰符,以便.
匹配换行符。 (?:)
是非捕获组。