1. match
re.match(pattern, string[, flags])
从字符串开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若要完全匹配,pattern要以$结尾。
2. search
re.search(pattern, string[, flags])
若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个。
若匹配成功,match()/search()返回的是Match对象,获取匹配结果需要调用Match对象的group()、groups或group(index)方法。
string = 'aabttcdbeec'
res = re.match("b(.*?)c",string)
res
返回None。从string开始不能匹配成功。
string = 'aabttcdbeec'
res = re.search("b(.*?)c",string)
res
返回<re.Match object; span=(2, 6), match=’bttc’>
使用res.group(1)可以调用()里匹配的内容。
以上.*?
是非贪婪模式;如果.*
是贪婪模式,程序会进行最大匹配。
string = 'aabttcdbeec'
res = re.search("b(.*)c",string)
res
返回<re.Match object; span=(2, 11), match=’bttcdbeec’>
使用findall()可以返回所有匹配内容的列表。