【问题标题】:Using java regex to find img tags without a width or height attribute使用java正则表达式查找没有宽度或高度属性的img标签
【发布时间】:2013-12-09 23:00:06
【问题描述】:

查找没有宽度或高度属性的 img 标签的正则表达式是什么? 我尝试了正则表达式 <img(?!.*width).*?> 的宽度和 <img(?!.*height).*?> 的高度。

它会在没有冲突的情况下工作吗?这两个正则表达式的组合是什么?

【问题讨论】:

  • Ermm 只是将|(逻辑或)放在它们之间?喜欢:<img(?!.*width).*?>|<img(?!.*height).*?>。更不用说你不应该用正则表达式解析 HTML。
  • 必填link
  • java 中有没有可用的 css 解析器?
  • 是的,有相当多的 css 解析器。你可能想看看这个 - stackoverflow.com/questions/1513587/…

标签: java regex


【解决方案1】:

解决方案

由于您使用的是 Java,这里有一个简单的示例,用于匹配没有宽度或高度属性的 img 标签。我用的是Jsoup html parser

Document doc = Jsoup.parse(myHtmlCode).get();
Elements imgsWithoutHeighOrWidth = doc.select("img:not(img[height], img[width])");

演示

http://try.jsoup.org/~z1zP_fkmQPOi4Nbj87omMgbDbr0

说明

这里的重要部分是传递给select 方法的cssQuery

我要求它找到:

img               => any img tags
   :not(          => not in 
      img[height] =>   any img tags with an `height` tag
      ,           =>   or
      img[width]  =>   any img tags with a `width` tag
   )

【讨论】:

  • 感谢 Alex 的回复,有没有办法检索 标签 start line & column number and end line & column number ?因为我需要在我自己的 html 编辑器中突出显示 标签(没有宽度/高度)。
  • @user2998596 我不知道该怎么做。但是,您可以使用Element.html() 方法来获取此元素在myHtmlCode 中的位置。 Checl Jsoup javaodc 以获得更多帮助:jsoup.org/apidocs
猜你喜欢
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多