3

我读到你应该使用?非贪婪地匹配文本,所以正则表达式

http://.*?\.png

...用于

http://example.png.png

...会回来http://example.png

但不贪婪似乎只从左到右起作用。也就是说,如果我匹配它

http://http://example.png

...它会返回http://http://example.png

我怎样才能让代码http://example.png只匹配?

4

2 回答 2

2

尝试这个:

http://[A-Za-z0-9_-]+\.png

它不会获得第一个,因为它之间http://有更多[A-Za-z0-9_-]+.png

如果您担心 URL 中的其他字符,也可以使用它:

http://[^:]+?\.png
于 2013-08-09T21:48:43.963 回答
2

您也可以使用负面的展望,但我认为 smerny 的答案更好。

http://(?!http://).*?\.png
于 2013-08-09T21:58:18.840 回答