#re正则的用法:match匹配从开头 search 取一个就回来了,findout取所以匹配的,slit分割 sub替换
#-*- coding:utf8 -*- # Auth:fulimei #re正则的用法:match匹配从开头 search 取一个就回来了,findout取所以匹配的,slit分割 sub替换 import re res=re.match('^chen','chenronghua')#^匹配字符开头 resa=res.group()#匹配的字符打印出来 print(res) print (resa) #写死了就不用正则了 #d匹配一个数字,d+匹配一个或多个数字 re.search#search这个用的最多 a=re.search('R[a-z]+a','112Ronghua44Ronghua')#[a-z]取a到z的一个字符,多给匹配的最后取第一个 print(a)#span=(3, 10), match='Ronghua'> b=re.search('R[a-zA-Z]+a','112RonAghua44Ronghua') print(b) #span=(3, 11), match='RonAghua'> #匹配前一个字符0次或1次 ?的用法 c=re.search('aal?','aadbd') print(c) #l可以没有,匹配了零次 match='aa' d=re.search('aal?','aaldbd') print(d)#匹配了1零次 match='aal' f=re.search('[0-9]{3}','a1bc234') #匹配3个数字match='234'> print(f) #匹配一到三次 ,取一个就返回 g=re.search('[0-9]{1,3}','a1bc234') #取一个就返回match='1'> print(g) #匹配所有 ,注意findall 没有group方法 h=re.findall('[0-9]{1,3}','a1b2c345de') print(h)#['1', '2', '345'] l=re.search('abc|ABC','ABCDabc') #match='ABC' print(l) J=re.findall('abc|ABC','ABCDabc') #match='ABC' print(J)#['ABC', 'abc'] k=re.search('abc{2}','flmabccc') print(k)#match='abcc'> #匹配两个管道符两次 如||= m=re.search('(||=){2}','abc||=||=') print(m)#match='||=||=' #A从头匹配 匹配最后一个 n=re.search('A[0-9]+[a-z]','123b') #结尾必须是小写字母 print(n)#match='123b' #D匹配非数字 o=re.search('D+','123$%a ') print(o)#match='$%a '> #匹配数字+字母 p=re.search('w+','12A3b$%') print(p)# match='12A3b'> #匹配特殊字符 q=re.search('W+','12A3b$%') print(q)#match='$%'> # s匹配空格换行 tab键( ) r=re.search('s+','123$%a ') print(r) #'(?P<name>...)' 分组匹配 省 市 县 s=re.search('(?P<province>[0-9]{3})(?P<city>[0-9]{3})(?P<birthday>[0-9]{4})','220723198901021625').groupdict() print(s) print(s['city']) #按什么分隔split t=re.split('[0-9]+','abc12df44gG456DF') print(t)#['abc', 'df', 'gG', 'DF'] #sub替换 把所有的数字替换成| y=re.sub('[0-9]+','|','a1w234fg2fF2GG') print(y)# a|w|fg|fF|GG z=re.sub('[0-9]+','|','a1w234fg2fF2GG',count=2)#替换前2个 print(z) # a|w|fg2fF2GG
# s匹配空格换行 tab键( )