当我运行这段代码时:
print re.search(r'1', '1').groups()
我获得了一个结果()
。 然而,.group(0)
给了我匹配的结果。
groups()
不应该给我包含匹配结果的东西吗?
当我运行这段代码时:
print re.search(r'1', '1').groups()
我获得了一个结果()
。 然而,.group(0)
给了我匹配的结果。
groups()
不应该给我包含匹配结果的东西吗?
据我所知,.groups()
返回一个元组,其中包含 已记住的组。也就是正则表达式中用括号包裹的那些组。所以如果你写:
print re.search(r'(1)', '1').groups()
你将会得到
('1',)
根据你的回答,.groups()
通常会返回一个元组,其中包含正则表达式中所有括在圆括号内的对象组。
由于您没有任何捕获组,因此groups为空 - http://docs.python.org/library/re.html#re.MatchObject.groups。无论是否在组中捕获,group(0)始终返回匹配的整个文本。
已编辑。
您的正则表达式中没有分组,因此结果返回一个空列表(()
)。
尝试使用
re.search(r'(1)', '1').groups()
使用括号可以创建一个捕获组,与该模式匹配的结果将存储在该组中。
然后您将获得
('1',)
()
)。http://docs.python.org/library/re.html#re.MatchObject.groups
而group(0)
返回整个搜索结果(即使它根本没有任何捕获组):http://docs.python.org/library/re.html#re.MatchObject.group