java - 匹配 HTML 中的 img src 名称

标签 java regex

我有一个图像列表,其中一些图像在网络上使用。 我需要统计网站上使用了哪些图像以及哪些页面等。

如何“匹配”我的图像。 规则是:

  1. 我只有文件名,即“mypic.png”
  2. 这是我想要构建的正则表达式 <img[anything]src=("or')[anything]mypic.png[anything]("or')[anything]>

这是我的一个愚蠢的 HTML

<figure class="gr_col gr_2of3">
    <div class="mll mrm mbs md_pic_wrap1">
        <a href="http://mydomain/nice-page" title="title test">
            <img alt="alt text" class="mbm" src="http://mydomain/file-pic2/mypic.png" width="95" height="95">
        </a>
    </div>
</figure>

谢谢!

最佳答案

几乎在所有情况下,HTML 和正则表达式一起使用都很糟糕。使用旨在执行您需要完成的工作的工具,例如JSoup。

Document document = Jsoup.parse(htmlStringOrFile);
for(Element img : document.select("img")) {
    if(img.attr("src").contains("mypic.png")) {
        System.out.println(img.attr("alt"));
    }
}

这将打印 src 中包含 mypic.png 的所有 img 元素的 alt 属性值。将 alt 替换为 nameid 或任何最适合您情况的内容。

[Pshemo 指出]

选择器可以是任何 CSS 选择器,因此您可以通过将其替换为本质上具有相同语义的 img[src*=mypic.png] 来削减条件检查甚至循环本身。

关于java - 匹配 HTML 中的 img src 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731516/

相关文章:

regex - Mongo 正则表达式模式语法匹配斜杠

regex - 如何从 Perl 中的连续行中检索值?

regex - 匹配 "Order by"sql 语法的正则表达式

java - 检测 Hibernate 中的重复行

java - SpEL - 从 Object[] 获取值

java - 每当我添加一个对象时,它就会出现在屏幕的一角

c# - C#中如何替换两个字符之间的文本

javascript - 使用 Regex 过滤掉 Javascript 文本中包含关键字的子字符串

java - 如何正确避免SWT表扩大?

Java读取带分隔符的大文本文件