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

10-16 12:43
查看更多