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

Regex: Matching only groups that have a specific word embedded

我不知道如何只匹配包含特定单词的组('test',例如下面的示例)。这是一个大文本文件,组以行 'Group 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

您的模式以 ^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