“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()返回類型為元祖,表示返回正則表達式每個子組(每個())匹配的對象依次放進元祖里,如果正則表達式沒有(),則返回空元祖()。