如何在 C# 中使用正则表达式匹配多行

本文关键字:正则表达式 | 更新日期: 2023-09-27 18:34:58

我正在尝试替换tex文件中的某些内容,例如下面。

我想匹配从'starttable到第二'HL的内容。

'starttable[|lp(0.08'textwidth)|lp(0.35'textwidth)|lp(0.48'textwidth)|lp(0.08'textwidth)|]
'HL
'NC Req. Id
'NC Description
'NC Test Scenario
'NC Result
'NC'AR
'HL
'NC TAF-89
'NC Trigger test start - from jig
'NC 
'NC Unavailable
'NC'AR
'NC TAF-88
'NC Trigger test start - using scanner
'NC 
'NC Unavailable
'NC'AR
'HL

我试过

Regex tableHeaderRegex = new Regex(@"(''starttable(.*))(''HL..(''NC.*)+''HL)",
                                 RegexOptions.Singleline);

但这并没有止步于第二'HL,而是继续追平最后一'HL,因为''NC.*

我也尝试过RegexOptions.Multiline但没有成功。

如何在 C# 中使用正则表达式匹配多行

''starttable['s'S]*?''HL['s'S]*?''HL

您可以在没有标志的情况下使用它g以实现相同的目的。请参阅演示。

https://regex101.com/r/vN3sH3/41