#!-*-coding: UTF-8 -*- import re def repfuc(match): return "["+match.group(1)+"]" s="111AA22BB33" rnum="(?P<num>\d+)" print(re.match(rnum,s).group(1)) #获取第一个匹配,第一个是整个匹配 print(re.match(rnum,s).groups()[0])#获取匹配列表,没有全匹配,和上一个一样 print("re.sub") print(re.sub(rnum,"[\g<num>]",s)) #返回替换后的字符串 print(re.sub(rnum,repfuc,s)) print("re.finditer re.findall") for m in re.finditer(rnum,s): #返回匹配的match迭代器 print(m.groupdict()['num']) print(re.findall(rnum,s)) #以列表形式返回匹配字符串 print("re.split") print(re.split(rnum,s)) print(re.split("\d+",s)) #用runum分割不是预期结果 print("re.search re.match") print(re.search(rnum,s)) #search从0位置开始,不匹配起始位置+1,一直到结束 print(re.match(rnum,s)) #match只从开始匹配
(?x) 在表达式之前表示使用忽略空格匹配,只能使用\s\n等转义匹配,用于多行表达式,和加flah re.X效果一样