为了账号安全,请及时绑定邮箱和手机立即绑定

蟒蛇正则表达式为什么量词(+)不贪婪

蟒蛇正则表达式为什么量词(+)不贪婪

慕后森 2022-09-27 15:16:01
输入:asjkd http://www.as.com/as/g/ff askl预期输出:http://www.as.com/as/g/ff当我在下面尝试时,我得到了预期的输出pattern=re.compile(r'http[\w./:]+') print(pattern.search("asjkd http://www.as.com/as/g/ff askl"))为什么这里的量词不贪婪?我以为它会很贪婪。在这里,实际上不贪婪有助于找到正确的答案。+
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

这是贪婪的。当它到达空间时,它会停止匹配,因为与空间不匹配。空格不是单词字符(字母数字或下划线)、点、斜杠或冒号。[\w./:]


改变到,你可以看到当它不贪婪时会发生什么。++?


贪婪


>>> pattern=re.compile(r'http[\w./:]+')

>>> print(pattern.search("asjkd http://www.as.com/as/g/ff askl"))

<re.Match object; span=(6, 31), match='http://www.as.com/as/g/ff'>

不贪婪


>>> pattern=re.compile(r'http[\w./:]+?')

>>> print(pattern.search("asjkd http://www.as.com/as/g/ff askl"))

<re.Match object; span=(6, 11), match='http:'>

它匹配一个字符!:


查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信