c# Regex匹配标签和结束前的文本

本文关键字:结束 文本 标签 Regex | 更新日期: 2023-09-27 18:15:21

我需要提取标签和它们之间的文本。示例文本

<SampleTag1>Text 'r'n More < Text < <'SampleTag1>

我想得到:

  • Group1: SampleTag1
  • Group2: Text 'r'n More <文本&>

现在我有:

"<('w+)>([^</]*)"

但是I't只返回:

  • Group1: SampleTag1
  • Text 'r'n更多

c# Regex匹配标签和结束前的文本

由于这不是有效的XML,我猜regex解决方案可能在您的情况下有效。

<(?<tag>'w+)>(?<text>.*?)</'k{tag}>

演示

我使用了一个惰性限定符(.*?)来匹配尽可能少的字符,但由于关闭标记是必需的,因此它必须匹配标记内的文本才能成功匹配。如果您需要断行支持,请使用RegexOptions.Singleline。如果你可以嵌套标签,这个表达式将不起作用。

(如果需要,将</替换为<'')