我想写一个正则表达式,它应该忽略字符串之间存在的标记。
如, 这是我的字符串
<p>hi this is a reg<del>U</del><ins>u</ins>lar expression match</p>
我希望正则表达式从上面的字符串中找到“常规”,
匹配应找到包含标签的整个单词,即reg<del>U</del><ins>u</ins>lar
这里的情况可以忽略。
请帮助我...提前谢谢
答案 0 :(得分: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
答案 1 :(得分:0)
这里你真的需要某种形式的HTML解析器。正则表达式不适合HTML,您可以花时间进行优化和调整,以尝试覆盖所有边缘情况(您无法做到)。