gpt4 book ai didi

Python 正则表达式意外行为

转载 作者:行者123 更新时间:2023-11-28 22:00:35 25 4
gpt4 key购买 nike

str1='<a href="/states/florida/433" title="florida"><img alt="florida" src="http://abc.com"'
str2='<a href="/states/florida/433" title="florida">'
pat = re.compile('/states/.*/([^"]+)')
if ( pat.findall(str2) == pat.findall(str1)):
print "TRUE"
else:
print "FALSE"

输出:错误,

输出2:433
输出1:abc.com

谁能解释一下?

最佳答案

使用不情愿的量词 - .*?,而不是贪婪的量词 - .* 一切都会好起来的:-

pat = re.compile('/states/.*?/([^"]+)')

默认情况下,量词是贪婪的,从某种意义上说,它们试图覆盖尽可能多的字符串,并且仍然保留模式的其余部分以匹配剩余的字符串。在量词之后使用 ? 使其勉强,在这种情况下,它们将在以下字符的第一个匹配处停止 - / 在这种情况下.

关于Python 正则表达式意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com