“python核心编程第三版”定义如下:
当处理正则表达式时,除了正则表达式对象之外,还有另一个对象类型:匹配对象。
匹配对象有两个主要的方法:group()和groups(),group()要么返回整个匹配对象,要么根据要求返回特定子组。groups()则仅返回一个包含唯一或者全部子组的元组。如果没有子组的要求,那么当group()仍然返回整个匹配时,groups()返回一个空元组。
代码示例:
>>> re.match('aa','aabcdefg').group()#匹配aa group()返回匹配对象
'aa'
>>> type(re.match('aa','aabcdefg').group())#group()返回类型为字符串
<class 'str'>
>>> re.match('aa','aabcdefg').groups()#匹配aa groups()返回匹配对象为元祖,如果无子组,返回空元祖
()
>>> type(re.match('aa','aabcdefg').groups())#groups()返回类型元祖
<class 'tuple'>
>>> re.match('(aa)','aabcdefg').group()#匹配aa group()返回匹配对象 用一个()代表有一个子组
'aa'
>>> re.match('(aa)','aabcdefg').groups()#groups()返回匹配对象 所有子组(这里只有1个子组)
('aa',)
>>> re.match('(aa)\w+(cd)\w+(fg)','aabcdefg').group()#group()返回匹配对象 有3个子组
'aabcdefg'
>>> re.match('(aa)\w+(cd)\w+(fg)','aabcdefg').groups()#groups()返回匹配对象 有3个子组
('aa', 'cd', 'fg')
>>> re.match('(aa)\w+(cd)\w+(fg)','aabcdefg').group(1)#group(1)返回第1个()匹配的对象,类型为字符串
'aa'
>>> re.match('(aa)\w+(cd)\w+(fg)','aabcdefg').group(2)#group(2)返回第2个()匹配的对象
'cd'
>>> re.match('(aa)\w+(cd)\w+(fg)','aabcdefg').group(3)#group(3)返回第3个()匹配的对象
'fg'
小结:
group()返回类型为 字符串,表示返回整个匹配对象作为一个字符串
group(1)返回类型为 字符串,表示返回正则表达式的第1个( )匹配的对象,group(0)等同于group()返回整个匹配对象
groups()返回类型为元祖,表示返回正则表达式每个子组(每个())匹配的对象依次放进元祖里,如果正则表达式没有(),则返回空元祖()。