【问题标题】:Aggregate regex replace聚合正则表达式替换
【发布时间】:2010-02-01 22:35:57
【问题描述】:

所以这纯粹是一个好奇的问题......

假设我有一组标签:

<tag>
  <sub>A</sub>
  <sub>B</sub>
  <sub>C</sub>
</tag>
<tag>
  <sub>1</sub>
  <sub>2</sub>
  <sub>3</sub>
</tag>

是否可以在单个Regex.Replace 命令中将&lt;tag&gt; 中所有&lt;sub&gt; 标记的内容聚合到一个&lt;sub&gt; 中。

像这样:

<tag><sub>ABC</sub></tag>
<tag><sub>123</sub></tag>

我的猜测是否定的,但我想我会试一试。

【问题讨论】:

    标签: c# regex replace


    【解决方案1】:

    理论上的标签集总是这么干净吗?如果是这样,将&lt;/sub&gt;\s+&lt;sub&gt; 替换为空即可。

    【讨论】:

    • 最好将\n 替换为\s+
    • 啊,我什至没有想过要那样做,但让我们假设这个系列并没有那么干净。是否可以以这种方式聚合组/捕获?
    • 使用前瞻,当然,但这实际上取决于您获得的一组结构清晰且匹配良​​好的标签有多远。在为这些情况编写的正则表达式中发现失败要容易得多,首先要编写它们。
    • 如果输入不是那么干净,你需要一个 XML 解析器,而不是正则表达式。
    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    相关资源
    最近更新 更多