问答详情
源自:4-2 python正则表达式练习

print(re.findall(r'http:.+\.jpg', 'http://123.jpg,http://234.jpg')) # 为啥打印出的是['http:123.jpg,http:234.jpg'], 不是['http:123.jpg', 'http:234.jpg'] ​

print(re.findall(r'http:.+\.jpg', 'http://123.jpg,http://234.jpg'))
# 为啥打印出的是['http:123.jpg,http:234.jpg'], 不是['http:123.jpg', 'http:234.jpg']


提问者:qq_晨曦_104 2020-02-05 23:48

个回答

  • 谦与谦逊
    2020-04-06 14:47:29

    +默认是贪心匹配,可以加?让它变成非贪心匹配,就能够满足你的需求了

    print(re.findall(r'http:.+?\.jpg', 'http://123.jpg,http://234.jpg'))

  • 慕容4002396
    2020-02-06 22:58:11

    因为
    ‘http://123.jpg,http://234.jpg' 也是符合http:开头jpg结尾的 ‘http:省略.jpg'
    你这样试下:
    print(re.findall(r'http://[\d]+\.jpg',http://123.jpg,http://234.jpg'))

    >>> print(re.findall(r'http://[\d]+\.jpg','http://123.jpg,http://234.jpg'))

    ['http://123.jpg', 'http://234.jpg']