【问题标题】:C# Regex Match Tag and text before end of itC# 正则表达式匹配标签和结束前的文本
【发布时间】:2015-10-01 08:44:02
【问题描述】:

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

<SampleTag1>Text \r\n More < Text < <\SampleTag1>

我想得到:

  • Group1:SampleTag1
  • Group2:文本 \r\n 更多

现在我有:

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

但我不只返回:

  • Group1:SampleTag1
  • 文字\r\n更多

【问题讨论】:

    标签: c# regex tags


    【解决方案1】:

    由于这不是有效的 XML,我想正则表达式解决方案在您的情况下可能是有效的。

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

    Demo

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

    (如果需要,将&lt;/ 替换为&lt;\\

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多