匹配对象的group()和groups()方法
当在处理正则表达式的时候,除了正则表达式对象之外,还有另一个对象类型:匹配对象,即是成功调用match()或者search()所返回的对象。
匹配对象有两个主要方法:group() 和 groups() 。
group():要么返回整个匹配对象,要么根据要求返回特定子组;如果group()没有子组要求,返回整个匹配。
实例:
#Author:Dylan import re s = "123dyalnABC" print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).group()) #返回123dyalnABC print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).group(0)) #返回123dyalnABC print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).group(1)) #返回123 print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).group(2)) #返回dylan print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).group(3)) #返回ABC
由此可以看出,group()是按照特定子组数字---小写字母---大写字母来获取字符串的,
对应关系是group(1)对应正则表达式对象的特定子组1,group(2)对应特定子组2,group(3)对应特定子组3......
一般地,s.group(N)返回正则表达式对象的第N组特定子组。
group(0)同group()一样,对应整个正则表达式对象。
groups():以tuple格式返回所有匹配子组。
实例:
import re s = "123dyalnABC" print(re.search("([0-9]*)([a-z]*)([A-Z]*)",s).groups()) #返回('123', 'dyaln', 'ABC')
Dylan