re.findall 组在 python3.6 中的工作机制



我正在学习python re模块,并想知道re.findall()函数的工作机制是什么。

我已经看过python的官方文档,我仍然不明白re.findall组的工作机制是什么。 python3.6 findall(( 文档..

我对下面的代码感到困惑:

import re
#output: ['def']
print(re.findall('w+s+(w+)','abc def'))

我希望re.findall('w+s+(w+)','abc def')的输出是[('abc def','def')]的,但实际输出是['def']

对于每个匹配项,findall() 返回所有捕获组 [1]。

您的正则表达式匹配一个子字符串,abc def . 正则表达式只有一个捕获组,因此这就是返回的内容。

如果要同时返回整个匹配项和匹配项的第二个单词,则需要有两个捕获组,如下所示:

>>> print(re.findall('(w+s+(w+))','abc def'))
[('abc def', 'def')]

[1] 如果没有捕获组,则返回整个匹配项。

相关内容

  • 没有找到相关文章

最新更新