我正在使用正则表达式解析一些HTML我有以下正则表达式匹配除img和a之外的所有标签。
\<(?!img|a)[^\>]+\>
这很好但我也想让它与结束标签相匹配,我尝试了以下但是它不起作用:
\</?(?!img|a)[^\>]+\>
最好的方法是什么?
(此外,在有大量评论表示不使用正则表达式解析HTML之前,我只想说这个HTML是由工具生成的,并且非常统一。)
编辑:
<p>So in this</p>
<p>HTML <strong>with nested tags</strong></p>
<p>It should remove <i>everything</i> except <a href="#">This link</a>
and this <img src="#" alt="image" /> but it also needs to kep the textual content</p>
答案 0 :(得分:0)
好的,这是一个非常浪费的解决方案:
<(?!img|a|\/img|\/a)[^>]+>
如果有人能找到更好的人,那就太好了。
答案 1 :(得分:0)
我认为最简单的解决方案如下:
<\/?(?!img|a)[^>]+>
它只是匹配:
<
,/
(使用\
转义)如果有(量词?
),img
也没有a
,>
([^>]+
)和>
看到它正常工作here on regex101。