常用方法
1.匹配
findall (pattern, string, flags=0)
1 s = re.findall('\D+','天12青色2334等烟45雨') 2 print(s) #['天', '青色', '等烟', '雨'] 返回值是列表
s1 = re.findall('\s+','123haha__456') print(s1) # [] 没有值匹配返回空列表
search(pattern, string, flags=0)
1 s = re.search('[a-z]+','what123the***fuck') 2 print(s) #<_sre.SRE_Match object; span=(0, 4), match='what'> 返回值是正确匹配结果的对象,返回值1个,匹配上则返回对象 3 print(s.group()) #what 通过group()获得匹配到的第一个结果 4 s1 = re.search('\s+','what123the***fuck') 5 print(s1) # None 匹配不到则返回None
match(pattern, string, flags=0)
s = re.match("\d+",'1213wode1314tiankong') print(s) # <_sre.SRE_Match object; span=(0, 4), match='1213'> 返回结果与search相同 s1 = re.match("\d+","aidedeti") print(s1) #None 如果匹配不到返回None
2.替换
sub(pattern, repl, string, count=0, flags=0)
s = re.sub('[a-z]+','的','我de天空多么di清晰') print(s) #我的天空多么的清晰
subn(pattern, repl, string, count=0, flags=0)
s = re.subn('[a-z]+','的','我de天空多么di清晰') print(s) #('我的天空多么的清晰', 2) #返回元组,2个值,替换后的字符串和替换个数
3.切割
split(pattern, string, maxsplit=0, flags=0)
s = re.split("\d+"," ju123tou23wang00wujin33huiyun11") print(s) # [' ju', 'tou', 'wang', 'wujin', 'huiyun', ''] 返回列表
4.进阶方法
compile(pattern, flags=0)
finditer(pattern, string, flags=0)
python中正则表达式的特点