匹配字符
. 匹配除
以外的任意一个字符
^ 从起始位置开始匹配
$ 从末尾开始匹配
* 匹配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()) #获取分组结果,以字典展示