我得到了一些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/