java - java中如何使用正则表达式捕获字符串中的内容

标签 java html parsing

我想解析 HTML 表单并提取任何嵌入图像的文件名。

所以字符串可能看起来像:

{ 

... 随机 HTML 内容

    image1.png 

 more random HTML content

    image3.png

... }

根据上面的内容,我想用 Java 编写一个返回给我的函数 {图像1.png,图像3.png}。

我有一个正则表达式,它仅返回最后一个图像名称 (image3.png),但它会忽略以前的图像名称。如何使用正则表达式捕获所有这些?

所有/任何帮助将不胜感激。

最佳答案

https://stackoverflow.com/a/2059614/684934给一个好的提示。更具体地说,您可能正在寻找类似 [a-zA-Z0-9_\-]+\.(png|jpg|gif|jpeg|tif) 的内容。

但请注意,这是正则表达式,仅查找字符序列。例如,如果您正在查看使用 servlet 提供动态图像的站点,并且资源 URI 恰好不是以普通图像文件扩展名(例如 .jsp 或 .do)结尾,则正则表达式将完全失败。它还会从任何类型的恰好匹配的文本中选取任何“图像名称”,这些文本实际上并不代表页面上的图像。

要正确完成这项工作,您需要使用某种 DOM 并遍历 <img>元素。 (以及 <button> 元素,其类型可能是 image ...可能有更多可以包含图像的标签。)

关于java - java中如何使用正则表达式捕获字符串中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8583793/

相关文章:

html - Bootstrap 3 导航栏 anchor 元素在事件/焦点状态下的样式不正确

javascript - 构建 Chrome 搜索栏副本

parsing - 获取从正在解析的句子生成的 Prolog DCG 参数

java - 从抽象语法树中获取控制流图

java - LocationListener 未获取用户的当前位置

java - Log4j 以不同格式记录两次

java - 如何检查 Scanner Util 的输入字符串是否与初始字符串匹配

Outlook 2013 中的 HTML 电子邮件未对齐?

c++ - 为什么 C++ 不允许用户定义运算符?

java - 以编程方式修改 Spring bean