1.【compile】: 先用此函数把正则表达式的字符串形式编译为pattern实例。
# pattern = re.compile('\daaa') # print(type(pattern)) 运行结果如下:
这是一个pattern对象,可多次使用。
2.【match】:只匹配开头,成功匹配就返回一个match对象,没有就返回None
pattern=re.compile('\d[a-z]\d') strs='1a2nnnn2b3' print(re.match(pattern,strs))
match对象
print(re.match(pattern,strs).group())#通过group函数可以查看匹配到的字符串
3.【search】:返回第一次出现的正则表达式
pattern = re.compile('\d[a-z]\d') strs = 'mmm1a2nnnn2b3' print(re.search(pattern,strs).group())
4.【findall】:返回一个符合表达式的列表
pattern=re.compile('(\d)[a-z](\d)') strs='mmm12annnn2b3' print(re.findall(pattern,strs))
正则表达式中的小括号是分组的作用,有几个组就返回几个结果,此表达式中括号内的内容是数字,但是数字中间要有字母,所以返回2,3而不是字符串首先出现的12
5.【finditer】:返回一个迭代器
pattern = re.compile('(\d)[a-z](\d)') strs = 'mmm1a2nnnn2b3' for i in re.finditer(pattern,strs): print(i.group(0)) # 默认返回完整匹配结果 print(i.group(1)) print(i.group(2))
扫描二维码关注公众号,回复:
2395442 查看本文章
6.【split】:以正则式内容为分割标准,返回一个分割原字符串的列表
pattern = re.compile('[a-z]') strs = '1a2b3c4d5d' print(re.split(pattern,strs))
7.【sub】把字母替换成sub 中指定的字符
pattern = re.compile('[a-z]') strs = '1a2b3c4d5d' print(re.sub(pattern,'-',strs))
总结:
第一步:调用re.compile()函数,生成pattern对象(该对象可以多次使用);
第二步:调用pattern对象的match(string)方法,在string中进行匹配,返回 一个match对象;
第三步:调用match对象的group()方法,可以查看匹配到的信息,group(0)=group() ;group(1)表示第一组信息,以此类推。