我无法弄清楚如何仅匹配包含特定单词的群组(例如下面的“测试”)。这是一个大文本文件,组以“组 x”行开头,并包含与下一组空行分隔的文本。我想我需要使用前瞻和后视,但不知道如何。我可以使用vb.net,但试图在正则表达式测试器中测试不同的表达式,但无法到达任何地方。
Group 1
adfdf
dd test ddfdf
dfdfadf
Group 2
ddfadfa
Group 3
add test
adfdff
Group 4
adfdf
预计2场比赛:
Group 1
adfdf
dd test ddfdf
dfdfadf
Group 3
add test
adfdff
答案 0 :(得分:0)
使用^Group \d+$
开始您的模式,然后以(?:^$|\Z)
结束。在中间匹配test
但不在空行$(?:.(?!^$)
之前(有关后者如何工作的详细信息,请参阅Regular expression to match a line that doesn't contain a word?)。别忘了m
和s
修饰符:
^Group \d+$(?:.(?!^$))*?test.*?(?:^$|\Z)