dtc*_*dtc 32 python regex object match capture-group
当我运行此代码时:
print re.search(r'1', '1').groups()
Run Code Online (Sandbox Code Playgroud)
我得到了结果().但是,.group(0)给我一个匹配.
不应该groups()给我一些包含比赛的东西?
更新:感谢您的回答.因此,这意味着,如果我这样做re.search(),没有分组,我必须使用groups(0)获得比赛?
Hod*_*Hod 23
据我所知,.groups()返回一组记忆组.即正则表达式中括在括号中的那些组.所以如果你写的话:
print re.search(r'(1)', '1').groups()
Run Code Online (Sandbox Code Playgroud)
你会得到的
('1',)
Run Code Online (Sandbox Code Playgroud)
作为你的回应.通常,.groups()将返回正则表达式中括在括号内的所有对象组的元组.
aru*_*mar 22
由于您没有任何捕获组,因此组是空的 - http://docs.python.org/library/re.html#re.MatchObject.groups.group(0)将始终返回匹配的整个文本,无论它是否在组中捕获
编辑.
这样做的原因是您没有捕获组(因为您没有()在模式中使用)。
http://docs.python.org/library/re.html#re.MatchObject.groups
并group(0)返回整个搜索结果(即使它根本没有捕获组):http :
//docs.python.org/library/re.html#re.MatchObject.group
您的正则表达式中没有组,因此()结果是一个空列表()。
尝试
re.search(r'(1)', '1').groups()
Run Code Online (Sandbox Code Playgroud)
使用括号将您创建一个捕获组,将与模式的这一部分匹配的结果存储在一个组中。
然后你得到
('1',)
Run Code Online (Sandbox Code Playgroud)
结果。