gpt4 book ai didi

python - 正则表达式匹配超过预期

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:55 25 4
gpt4 key购买 nike

给出以下 python 脚本:

text = '<?xml version="1.24" encoding="utf-8">'
mu = (".??[?]?[?]", "....")
for item in mu:
print item,":",re.search(item, text).group()

有人可以解释一下为什么第一次使用正则表达式 .??[?]?[?] 吗?返回 <?而不仅仅是 ? .

我的解释:

  • .??应该不匹配 .?可以匹配或不匹配任何字符,第二个 ?让它不贪心。
  • [?]?可以匹配?或不,所以没有什么是好的,也是
  • [?]正好匹配 ?

这应该导致 ?而不是 <?

最佳答案

同理o*?bar火柴oobarfoobar .即使量词是非贪婪的,正则表达式也会尝试以所有可能的方式从第一个字符开始匹配,然后再继续下一个字符。

首先是 .??匹配一个空字符串,但是当正则表达式引擎回溯到它时,它匹配 < , 从而使正则表达式的其余部分匹配,而不将匹配的起始位置移动到下一个字符。

关于python - 正则表达式匹配超过预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589226/

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