今天看到group()方法,有点疑惑,自己动手了解了一下。
举例如下:
import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).groups() #['123','abc','456']
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2) #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3) #456
一开始我理解为group(n)(n=1,2,3)会根据括号里的正则表达式进行匹配,每次都是从字符串a的起始位置开始,会自动匹配到‘123’,‘abc’,‘123’。但是结果让我感到不对,后来想了想,应该是search()里的三个正则表达式是有顺序的,只能依次执行,不是每次都从开始执行。这样就能解释通过了。