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

时间:2011-12-21 00:36:12

标签: java html parsing

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

所以字符串看起来像:

{ 

...     随机HTML内容

    image1.png 

 more random HTML content

    image3.png

... }

从上面我想用Java编写一个返回给我的函数 {image1.png,image3.png}。

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

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

1 个答案:

答案 0 :(得分:2)

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

的内容

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

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