regex - 如何删除除img之外的所有html标签?

标签 regex html-parsing

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

相关文章:

javascript正则表达式问题

带有日语注音假名的 MySQL 正则表达式

Javascript使用RegEXP删除特殊字符之间(但不包括)的字符

SwiftSoup 从evaluateJavaScript 解析

java - 获取网页内容 - 浏览器不支持框架

regex - string.search (".") 总是返回 0

javascript - 如何用正则表达式替换所有字符

python - 使用BeautifulSoup根据文本内容删除元素

javascript - 替换非渲染(非显示)元素文本中的 ↵ (\n)

python - 在多个调用中使用 HTMLparser