gpt4 book ai didi

python - 正则表达式反向引用 findall 不工作

转载 作者:行者123 更新时间:2023-11-28 16:24:43 24 4
gpt4 key购买 nike

我最近一直在程序中使用正则表达式。在这个程序中,我使用它们在与特定 RE 匹配的单词列表中查找单词。然而,当我尝试使用这个程序进行反向引用时,我得到了一个有趣的结果。

代码如下:

import re
pattern = re.compile(r"[abcgr]([a-z])\1[ldc]")
string = "reel reed have that with this they"
print(re.findall(pattern, string))

我期望的是结果 ["reel","re​​ed"](当我将它与 Pythex 一起使用时正则表达式匹配这些)

但是,当我使用 python(我使用 3.5.1)运行代码时,我得到了以下结果:

['e','e']

请有更多 RE 经验的人解释一下为什么我会遇到这个问题,以及我可以做些什么来解决它。

谢谢。

最佳答案

re.findall仅返回在正则表达式模式中使用捕获组 捕获的捕获值。

使用re.finditer这将保留第零组(整场比赛):

import re
p = re.compile(r'[abcgr]([a-z])\1[ldc]')
s = "reel reed have that with this they"
print([x.group(0) for x in p.finditer(s)])

参见 IDEONE demo

关于python - 正则表达式反向引用 findall 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513320/

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