正则表达式找到最短匹配?

时间:2012-06-06 18:25:45

标签: java regex

我的程序检索HTML页面内容,然后在页面中查找jpg图像链接。

我想使用正则表达式捕捉图像,但我在这里遇到问题..

为了做到这一点,我使用了模式

  

“HTTP。*?JPG”

但这让我抓住了以下表达式: 的 “http://someURL...http://imageURL.jpg”

所以我想我想找到的是最短的匹配,即找到“jpg”并向后看第一个“http”

是否可以使用正则表达式?

2 个答案:

答案 0 :(得分:3)

尝试http:[^:]*?jpg这是一种确保只有一个分号的hacky方式,因此只有一个http:block,您可以进一步选择公共分隔符作为网址

http:[^:\"\}\{\s]*?\.jpg

答案 1 :(得分:0)

如何使用基于正面的负面前瞻,以确保http://和.jpg之间的最短文本匹配,如下所示:

/http:\/\/(?!.*?http:\/\/).+?\.jpe?g/