gpt4 book ai didi

python - 正则表达式——不同字符串相同匹配

转载 作者:太空狗 更新时间:2023-10-29 20:57:42 25 4
gpt4 key购买 nike

我知道模式 r'([a-z]+)\1+' 正在搜索字符串中搜索重复的多字符模式,但我不明白为什么 k2 答案不是 'aaaaa' (5 'a'):

import re
k1 = re.search(r'([a-z]+)\1+', 'aaaa')
k2 = re.search(r'([a-z]+)\1+', 'aaaaa')
k3 = re.search(r'([a-z]+)\1+', 'aaaaaa')
print(k1) # <_sre.SRE_Match object; span=(0, 4), match='aaaa'>
print(k2) # <_sre.SRE_Match object; span=(0, 4), match='aaaa'>
print(k3) # <_sre.SRE_Match object; span=(0, 6), match='aaaaaa'>

python 3.6.1

最佳答案

因为+是贪心的。

发生的事情是 ([a-z]+) 首先匹配 'aaaaa',然后回溯直到 \1+ 匹配字符串,然后停止。因为 'aa' 是 ([a-z]+) 的第一个值,它将让 \1 成功匹配,这就是它返回的值。

关于python - 正则表达式——不同字符串相同匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48647645/

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