我想写一个正则表达式,它应该忽略字符串之间存在的标签。
例如,这是我的字符串
<p>hi this is a reg<del>U</del><ins>u</ins>lar expression match</p>
我想要一个正则表达式从上面的字符串中找到“常规”,匹配应该找到包括标签的整个单词,即,reg<del>U</del><ins>u</ins>lar
这里大小写可以忽略。
请帮助我..提前谢谢
我认为您无法在正则表达式中获得强大的解决方案。无论如何,它的可读性并不高。这里,以详细的形式,是一个符合您修改后的规范的正则表达式。请注意,它无法处理<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
你真的需要某种形式的 HTML 解析器。正则表达式不适合 HTML,您将花时间改进和调整以尝试覆盖所有边缘情况(您不能这样做)。