一、兩個(gè)方法得到值的類型
search()方法得到的值,其類型是re.Match對象。
findall()方法得到的值,其類型是list。
二、search()方法得到值的方法group()和groups()
search()方法得到的值,其類型是對象re.Match。這個(gè)對象有自己的方法。
其中最常用的兩個(gè)方法是group()和groups()。
group()方法的參數(shù)為一個(gè)非負(fù)整數(shù)。
group(0)是匹配字符串,group(1)為其第一個(gè)分組,group(2)為第二個(gè)分組,余類推。如果沒有相應(yīng)的分組,則拋出異常。
groups()可以有參數(shù),也可以沒有參數(shù),其值與參數(shù)無關(guān),所以就用無參數(shù)的形式。它的值為一個(gè)元組,其元素為所有分組。注意groups()的元素中不一定有匹配字符串,它只是所有分組??梢詫⒄麄€(gè)正則表達(dá)式作為一個(gè)分組(在最外面加圓括號(hào)),這樣其第一個(gè)元素就是匹配字符串。
三、findall()得到的值
findall()得到的值是一個(gè)列表。
這個(gè)列表的元素都是元組,每一個(gè)元組對應(yīng)一個(gè)匹配,是這個(gè)匹配的所有分組。每一個(gè)元組與search()得到的值的groups()方法的值的性質(zhì)一樣。同樣,元組中的元素不一定有匹配字符串,它們只是所有分組??梢詫⒄麄€(gè)正則表達(dá)式作為一個(gè)分組(在最外面加圓括號(hào)),這樣其第一個(gè)元素就是匹配字符串。