python re function

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)表示第一组信息,以此类推。

猜你喜欢

转载自blog.csdn.net/qq_37228811/article/details/81174462