正则表达式:仅匹配嵌入了特定单词的组

时间:2016-08-18 14:24:35

标签: regex vb.net regex-lookarounds

我无法弄清楚如何仅匹配包含特定单词的群组(例如下面的“测试”)。这是一个大文本文件,组以“ 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

1 个答案:

答案 0 :(得分:0)

使用^Group \d+$开始您的模式,然后以(?:^$|\Z)结束。在中间匹配test但不在空行$(?:.(?!^$)之前(有关后者如何工作的详细信息,请参阅Regular expression to match a line that doesn't contain a word?)。别忘了ms修饰符:

^Group \d+$(?:.(?!^$))*?test.*?(?:^$|\Z)

演示:https://regex101.com/r/kM9qB3/2