为什么re.groups()在我的一个正确匹配的组中没有给我任何内容?

34

当我运行这段代码时:

print re.search(r'1', '1').groups() 

我获得了一个结果()。 然而,.group(0)给了我匹配的结果。

groups()不应该给我包含匹配结果的东西吗?

4个回答

26

据我所知,.groups() 返回一个元组,其中包含 已记住的组。也就是正则表达式中用括号包裹的那些组。所以如果你写:

print re.search(r'(1)', '1').groups()

你将会得到

('1',)

根据你的回答,.groups() 通常会返回一个元组,其中包含正则表达式中所有括在圆括号内的对象组。


23

那是“groups”字段,而不是方法。 - Ismail Badawi

5

您的正则表达式中没有分组,因此结果返回一个空列表(())。

尝试使用

re.search(r'(1)', '1').groups()

使用括号可以创建一个捕获组,与该模式匹配的结果将存储在该组中。

然后您将获得

('1',)

作为结果。

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接