Regex backreference findall不工作

2024-06-07 23:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在一个程序中使用regex。在这个程序中,我用它们在单词列表中查找与某个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","reed"](当我将regex与Pythex一起使用时,正则表达式与这些匹配)

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

['e','e']

请有人与REs更多的经验,解释为什么我得到这个问题,我可以做什么来解决它。在

谢谢。在


Tags: 代码import程序re列表string单词regex
1条回答
网友
1楼 · 发布于 2024-06-07 23:16:08

^{}只返回regex模式内用捕获组捕获的捕获值。在

使用^{}将保留第零个组(整个匹配):

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

相关问题 更多 >

    热门问题