import re ret=re.findall("alex","hdasoialexhosfo") print(ret) #.通配符 re1=re.findall("..c","abcc") print(re1) #^以什么开头 ret2=re.findall("^ad...c","adihoc;l") print(ret2) #$以什么结尾 re3=re.findall("......sd$","asdfghsd") print(re3) #*重复出现次数[0,+00] ret2=re.findall("a*b","fhoahfaaaaabyuom;l") print(ret2) #+出现[1,+00] re4=re.findall("sd+.*","dsadsdsdsdsdsdsdsdwert") print(re4) #?匹配前一个字符出现一次或者0次 re5=re.findall("a?b","asdsdbafjdfkskbaupopob") print(re5) #{n,m}匹配出现次数(n,m)次数 re6=re.findall(".*s{2,}.*","asatsstgiuhj;m") print(re6) #[]匹配[]中列举的字符 re7=re.findall("[1-9a-zA-Z]","23effKK") print(re7) #^在[]中表示取反,如[^t]表示取不是t的单字符,[^4,5]表示不是4或5的字符 re8=re.findall("[^t,d]","duysdgwf") print(re8) #\d匹配数字字符,相当于[0,9],\D匹配非数字字符,相当于[^0-9] #\s匹配空白字符,\S匹配非空白字符 #\w匹配字母,想当于[0-9,a-z,A-Z],\W匹配非字母字符相当于[^0-9,a-z,A-Z] #\b匹配特殊字符边界,指单词与空格间 re9=re.findall(r"i\b","i like i&dsaf") print(re9) #re.search("",""),匹配第一个符合条件的字符串,返回是对象类型,group()方法返回内容 print(re.search('gh',"ghjjjsddgh").group()) re10=re.findall('\\bv',"hjdshva v")#两个\\在Python解释器中运行解释后就是一个\,此处可以用r转义 print(re.findall(r"\bs","$sfhuh")) print(re10) #()分组匹配? ret11=re.search('(?P<id>\d+)/(?P<name>\w+)',"huh355/ede") print(ret11.group()) print(ret11.group('id')) #方法findall()返回所有匹配的,返回类型列表 #方法search()返回匹配到的第一个对象,只匹配一次 #方法match()只从字符串开始匹配,注意只从开始匹配,也返回匹配到的第一个对象 ret12=re.match("sdf","sdfsfasfasdf")#如果开头没有sdf,则返回空对象 print(ret12.group()) #split()分割字符串 re13=re.split("[j,s]","asjhksljkl;sk") print(re13) #sub()替换字符串 re14=re.sub('sd',"gh","sdjkjsdklksduiosdsd",count=3) print(re14) #pattern编译方法 ret15=re.compile('\d{3}\w{2}:.*') print(ret15.findall("fsafa123gh:hfjkafkl"))
对应输出:
['alex']
['abc']
['adihoc']
['asdfghsd']
['aaaaab']
['sdsdsdsdsdsdsdwert']
['b', 'b', 'b']
['asatsstgiuhj;m']
['2', '3', 'e', 'f', 'f', 'K', 'K']
['u', 'y', 's', 'g', 'w', 'f']
['i', 'i']
gh
['s']
['v']
355/ede
355
sdf
['a', '', 'hk', 'l', 'kl;', 'k']
ghjkjghklkghuiosdsd
['123gh:hfjkafkl']