我得到了一些 html 文本,其中包含各种 html 标签,例如 <table>, <a>, <img>
等等。
现在我想使用正则表达式来删除所有 html 标签,除了 <img ...>
和 </img>
(以及大写 <IMG></IMG>
)。
这该怎么做?
更新:
我的任务很简单,就是把一个html的文本内容(包括图片)作为摘要打印在首页,所以我觉得正则表达式已经足够简单了。
再次更新
也许一个样本会让我的问题更好地理解:)
有一些html文本:
<html>
<head></head>
<body>
Hello, everyone. Here is my photo: <img src="xxx.jpg" />.
And, <a href="xxx">know more</a> about me!
</body>
</html>
我想保留,并删除其他标签。以下是我想要的:
Hello, everyone. Here is my photo: <img src="xxx.jpg" />. And, know more about me!
现在我这样编码:
html.replaceAll("<.*?>", "")
但它会删除
<
和 >
之间的所有内容,但我想保留 <img xxx>
和 </img>
,并删除 < and >
之间的其他内容谢谢大家!
最佳答案
我尝试了很多,这个正则表达式似乎对我有用:
(?i)<(?!img|/img).*?>
我的代码是:
html.replaceAll('(?i)<(?!img|/img).*?>', '');
关于regex - 如何删除除img之外的所有html标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3297300/