我使用此模式删除所有 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 片段,
所以,我想要使用正则表达式的解决方案
最佳答案
您可以使用负前瞻来做到这一点:
"<(?!(?:a|/a|img)\\b).*?>"
但是这有很多问题,如果您想要一个强大的解决方案,我建议您使用 HTML 解析器。
有关更多信息,请参阅此问题:
关于java - 如何保持指定的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785663/