【发布时间】:2010-09-24 09:14:00
【问题描述】:
我正在使用此模式删除所有 HTML 标记(Java 代码):
String html="text <a href=#>link</a> <b>b</b> pic<img src=#>";
html=html.replaceAll("\\<.*?\\>", "");
System.out.println(html);
现在,我想保留标签<a ...>(带有</a>)和标签<img ...>
我希望结果是:
text <a href=#>link</a> b pic<img src=#>
如何做到这一点?
我不需要 HTML 解析器来做这个,
因为我需要这个正则表达式模式来过滤大量的 html 片段,
所以,我想要正则表达式的解决方案
【问题讨论】:
-
这可能不是重点,但您拥有的 HTML 示例是无效的 - 您也可以从它搞砸 SO 的语法突出显示的事实中看出这一点......
-
它们完全有效。 HTML 不需要在属性值周围加上引号,也不需要作者关闭
img标记(以及其他标记)。