0

例如..

示例文本:<tag>AandBandCandD</tag>

我需要匹配发生在“和”的任何实例之间tag>并排除其中的所有内容,因此结果是:</tag

“A B C D”

4

2 回答 2

2

我将分两步执行此操作:

  • 首先提取标签的内容。
  • and接下来用空字符串替换所有出现的。

正则表达式不是任一步骤的正确工具:

  • 第一步可以使用 HTML 解析器更好地实现。
  • 第二步不需要正则表达式的复杂性。一个简单的字符串替换就可以了。

更新

如果您被迫使用单个正则表达式,那么这可能是不可能的。

于 2012-08-13T18:53:34.017 回答
1

无论如何,这是您可以尝试的。

(?<=<tag>)(?:((?!and).)+(?:and)?)*(?=</tag>)

为便于阅读而分解:

(?<=
  <tag>
)
(?:
  (
    (?!
      and
    )
    .
  )+
  (?:and)?
)*
(?=
  </tag>
)

我很确定这会产生与ands 之间的文本相等的匹配数。但是在不知道确切的正则表达式语言的情况下,有很多事情可以通过稍微不同来打破这一点。

于 2012-08-13T19:16:38.083 回答