匹配字符
. 匹配除 以外的任意一个字符 ^ 从起始位置开始匹配 $ 从末尾开始匹配 * 匹配0到任意个字符 + 匹配1到任意字符 ? 匹配0到2个字符 {} 匹配任意字符 {1,2} 匹配1到2个字符 [] . $ + ? {} 这些在[]中不在有特殊意义 - ^具有意义 ''' d 匹配任何十进制数 相当于[0-9] D 匹配任何非数字字符 相当于[^0-9] s 匹配任何空白字符 相当于 [ fv] S 匹配任何非空白字符 相当于[^ fv] w 匹配任何字母数字字符 相当于[a-z0-9A-Z] W 匹配任何非字母数字字符 相当于[^a-z0-9A-Z] 匹配一个单词边界 匹配空格间的位置 res=re.findall(r'a','a bbccd') '''
re中的方法
1.match
#match 匹配字符串的起始位置 res_match=re.match('com','comaa',re.S).group() #匹配所有字符,改变标志位 res_match=re.match('com','comaa').span() #从第几个位置到第几个位置
2.search
#search res_search=re.search('com','aacom').group() print(res_search)
3.sub subn
#sub 替换字符串subn res_sub=re.sub('a','b','a 123 456 a',1) #最后一个参数是替换的次数 res_sub=re.subn('a','b','a 123 456 a') #返回一个元祖,包含替换后的元素和替换的次数 print(res_sub)
4.findall
res1=re.findall('a*a','bbaaaaaaa') res=re.findall('a.*a','baaaccaa') #匹配以a开头一直到a结尾的字符 res=re.findall('a.+a','bbaaaccaa') res=re.findall('a.?a','bbaaaacc') res=re.findall('a.{2}a','bbaaacc') #2次 res=re.findall('a.{,2}a','bbaaacc') #0到2次 res=re.findall('ab{1,2}a','bbabbaacc') #b 1到2次
5.split
#split res_split=re.split('d','one1two2',1) #代表分割的次数 print('hh',res_split)
6.compile
#compile text='aa9b' regx=re.compile(r'ad') print(type(regx)) #对象 print(regx.findall(text)) #多次调用更高效
python re 转义
#python re 转义 #\\ 到re \ 正则匹配后 #所以加上原生字符串r
正则分组
#正则分组 #去已经匹配到数据中在做匹配 res=re.findall('a([1-9])d','a3d') res=re.match('a(?P<name>.)a','afa bb cc') print(res.group()) #获取所有结果 print(res.groups()) #获取分组结果,以元组展示 print(res.groupdict()) #获取分组结果,以字典展示