re.findall 分组工作机制 python3.6
re.findall groups working mechanism in python3.6
我正在学习python re 模块。想知道re.findall()
函数的工作机制是什么。
我看过python的官方文档,还是不明白re.findall
群的工作机制是什么。 python3.6 findall() document..
我对下面的代码感到困惑:
import re
#output: ['def']
print(re.findall('\w+\s+(\w+)','abc def'))
我希望 re.findall('\w+\s+(\w+)','abc def')
的输出是 [('abc def','def')]
,但实际输出是 ['def']
。
对于每场比赛,findall()
return 都是捕获组 [1]。
您的正则表达式匹配一个子字符串 abc def
。正则表达式只有一个捕获组,所以这就是 returned.
如果你想return整个匹配和匹配的第二个单词,你需要有两个捕获组,像这样:
>>> print(re.findall('(\w+\s+(\w+))','abc def'))
[('abc def', 'def')]
[1] 如果没有捕获组,则整个匹配 returned。
我正在学习python re 模块。想知道re.findall()
函数的工作机制是什么。
我看过python的官方文档,还是不明白re.findall
群的工作机制是什么。 python3.6 findall() document..
我对下面的代码感到困惑:
import re
#output: ['def']
print(re.findall('\w+\s+(\w+)','abc def'))
我希望 re.findall('\w+\s+(\w+)','abc def')
的输出是 [('abc def','def')]
,但实际输出是 ['def']
。
对于每场比赛,findall()
return 都是捕获组 [1]。
您的正则表达式匹配一个子字符串 abc def
。正则表达式只有一个捕获组,所以这就是 returned.
如果你想return整个匹配和匹配的第二个单词,你需要有两个捕获组,像这样:
>>> print(re.findall('(\w+\s+(\w+))','abc def'))
[('abc def', 'def')]
[1] 如果没有捕获组,则整个匹配 returned。