Regex以获取超过上次检测到的字符串的所有行

本文关键字:字符串 检测 获取 Regex | 更新日期: 2023-09-27 18:27:09

我有这样的文本:

Blah
Blah
Blah
Blah //// CODE --- do not change Blah
Blah
Blah
Blah
Blah //// CODE --- do not change Blah
I
Want
This
Text
Matched

我只想匹配它的这一部分(检测到最后//// CODE ---之后的所有行):

I
Want
This
Text
Matched

我试过使用(?<='/'/'/'/ CODE ---).*,但这不好。我想我错过了某种把戏。无论如何,什么是与我想要的文本匹配的正则表达式?我在.NET(C#)中工作。

Regex以获取超过上次检测到的字符串的所有行

您可以将此regex与多行和点标记一起使用,并获取捕获的组#1:

'A.*//// CODE ---.*?$'s(.+)'z

RegEx演示

使用下面的正则表达式,从组索引1中获取所需的文本。

.*(?<='/'/'/'/ CODE ---)[^'n]*'n(.*)

演示

['S's]*(?<='/'/'/'/ CODE ---).*'s(['s'S]+)

演示

通过负面展望。

(?:'/'/'/'/ CODE ---[^'n]*'n)(?!.*?'/'/'/'/ CODE ---)(.+)

演示

您只需使用此regex

.*'/'/'/'/ CODE ---.+?'n

带有多行和点全部标志,并替换为空字符串