读书人

[d]请问一个表达式应该如何写?标题不

发布时间: 2012-12-20 09:53:21 作者: rapoo

[d]请教一个表达式应该怎么写?标题不知道怎样形容,直接举例
本帖最后由 fibbery 于 2012-11-08 10:07:29 编辑 假设一个像这样错误的图片地址 http://http://www.com/logo.gif.logo.gif

我想把中间的http://www.com/logo.gif提取出来

如果用表达式

http://.+\.gif

会匹配整个字符串

如果在上面表达式中+号后面加个?号阻止贪婪,像这样
http://.+?\.gif

就会匹配http://http://www.com/logo.gif
http://还是重复了,
我想知道怎样写才能把前面的http://只匹配一次?

------------------
Double行动:
原帖分数:40

[最优解释]
引用:
Assembly code
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> string = 'http://http://www.com/logo.gif.logo.gif'
>>> regex = 'http://www.+?\.gif'
>>> re.find……

不好意思,我没说清楚,http://和.gif之间的字符串是未知的,并且中间的字符串不能包含有这两个,所以不能用你这个来判断
[其他解释]
引用:
引用:

还有其他后缀的吗,如.jpg?

(?!http://http://)http://.+?\.(gif
[其他解释]
(?!http://http://)http://.+?\.gif
[其他解释]
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> string = 'http://http://www.com/logo.gif.logo.gif'
>>> regex = 'http://www.+?\.gif'
>>> re.findall(regex,string)
['http://www.com/logo.gif']
>>>



[其他解释]
还有其他后缀的吗,如.jpg?
[其他解释]
引用:
还有其他后缀的吗,如.jpg?

(?!http://http://)http://.+?\.(gif
[其他解释]
jpg
[其他解释]
png)(?!\w)

已测试的用例:
http://www.test.com/logo.jpg
http://www.jpgIloveYou.com
http://www.Ilovejpg.com
http://www.Ilovejpg.com/logo.jpg
http://http://www.test.com/logo.gif.logo.gif
http://http://www.test.com/logo.jpg.logo.jpg
http://http://www.test.com/logo.png.logo.png

读书人网 >perl python

热点推荐