0

我想写一个正则表达式,它应该忽略字符串之间存在的标签。

例如,这是我的字符串

<p>hi this is a reg<del>U</del><ins>u</ins>lar expression match</p>

我想要一个正则表达式从上面的字符串中找到“常规”,匹配应该找到包括标签的整个单词,即,reg<del>U</del><ins>u</ins>lar

这里大小写可以忽略。

请帮助我..提前谢谢

4

2 回答 2

2

我认为您无法在正则表达式中获得强大的解决方案。无论如何,它的可读性并不高。这里,以详细的形式,是一个符合您修改后的规范的正则表达式。请注意,它无法处理<del>包含任何嵌套标签的标签——这对于 nsregularexpressions 是不可能的。

\b        # Start of word
r         # Match r
(?:       # Match either
 <del>    #  <del>
 [^<>]*   #  any characters besides angle brackets
 </del>   #  </del>
|         # or
 <[^<>]*> #  any other tag
)*        # End of alternation
e         # Match e
(?:<del>[^<>]*</del>|<[^<>]*>)*  # etc...
g
(?:<del>[^<>]*</del>|<[^<>]*>)*
u
(?:<del>[^<>]*</del>|<[^<>]*>)*
l
(?:<del>[^<>]*</del>|<[^<>]*>)*
a
(?:<del>[^<>]*</del>|<[^<>]*>)*
r
\b
于 2012-08-21T08:49:33.703 回答
0

你真的需要某种形式的 HTML 解析器。正则表达式不适合 HTML,您将花时间改进和调整以尝试覆盖所有边缘情况(您不能这样做)。

于 2012-08-21T08:56:13.950 回答