一、两个方法得到值的类型
search()方法得到的值,其类型是re.Match对象。
findall()方法得到的值,其类型是list。
二、search()方法得到值的方法group()和groups()
search()方法得到的值,其类型是对象re.Match。这个对象有自己的方法。
其中最常用的两个方法是group()和groups()。
group()方法的参数为一个非负整数。
group(0)是匹配字符串,group(1)为其第一个分组,group(2)为第二个分组,余类推。如果没有相应的分组,则抛出异常。
groups()可以有参数,也可以没有参数,其值与参数无关,所以就用无参数的形式。它的值为一个元组,其元素为所有分组。注意groups()的元素中不一定有匹配字符串,它只是所有分组。可以将整个正则表达式作为一个分组(在最外面加圆括号),这样其第一个元素就是匹配字符串。
三、findall()得到的值
findall()得到的值是一个列表。
这个列表的元素都是元组,每一个元组对应一个匹配,是这个匹配的所有分组。每一个元组与search()得到的值的groups()方法的值的性质一样。同样,元组中的元素不一定有匹配字符串,它们只是所有分组。可以将整个正则表达式作为一个分组(在最外面加圆括号),这样其第一个元素就是匹配字符串。