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

来源:4-2 python正则表达式练习

qq_晨曦_104

2020-02-05 23:48

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


写回答 关注

2回答

  • 谦与谦逊
    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']


python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题