输入: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:'>
它匹配一个字符!:
添加回答
举报
0/150
提交
取消