最小匹配操作符
#多加一个 ?
*? #前一个字符0次或无限次扩展,最小匹配
+? #前一个字符1次或无限次扩展,最小匹配
?? #前一个字符0次或1次扩展,最小匹配
{m,n}? #扩展前一个字符m至n次(含n),最小匹配
函数
re.search(pattern,string,flags=0) #在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
#flags包括以下:
#re.I re.IGNORECASE 忽略正则表达式的大小写,[A-Z]能够匹配小写字符
#re.M re.MULTILINE 正则表达式中的^操作符能够将给定字符串的每行当作匹配开始
#re.S re.DOTALL 重要,处理html通常会加上,使正则表达式中的.操作符能够匹配所有字符
re.match(pattern,string,flags=0) #从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall(pattern,string,flags=0) #搜索字符串,以列表类型返回全部能匹配的子串
re.split(pattern,string,maxsplit=0,flags=0) #将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer(pattern,string,flags=0) #搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub(pattern,repl,string,count=0,flags=0) #在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
regex = re.compile(pattern,flags=0) #将正则表达式的字符串形式编译成正则表达式对象
#注意,re会将表达式中()选中的元素提取出来,若没有(),则匹配符合表达式的字符串
Match对象属性,方法
.string #待匹配的文本
.re #匹配时使用的pattern对象(正则表达式)
.pos #正则表达式搜索文本的开始位置
.endpos #正则表达式搜索文本的结束位置
.group(0) #获得匹配后的字符串
.start() #匹配字符串在原始字符串的开始位置
.end() #匹配字符串在原始字符串的结束位置
.span() #返回(.start(),.end())