欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

re模块

程序员文章站 2022-07-10 09:22:38
...

search()方法
此方法是在整个字符串中查找满足匹配条件的字符或者字符串,一旦找到一个就不再继续查找,并返回包含查找值的对象,可以用.group()方法进行查看,如下:

>>> import re
>>> str = 'one1two2three3'
>>> ret  = re.search('\d',str)
>>> print(ret)
<_sre.SRE_Match object; span=(3, 4), match='1'>
>>> print(ret.group())
1
>>>

match()方法
此方法是用来从开头位置查找是否满足匹配条件,如果没有就会返回None,如果有,则会返回一个包含查找值的对象,可以用group()方法进行查看,如下:

>>> import re
>>> str = 'one1two2three3'
>>> ret=re.match('\d',str)
>>> print(ret)
None
>>> str2 = '1wds3cs'
>>> ret = re.match('\d',str2)
>>> print(ret)
<_sre.SRE_Match object; span=(0, 1), match='1'>
>>> print(ret.group())
1

findall()方法
此方法是在整个字符串中匹配指定字符或者字符串,并且将所有满足条件的结果返回到一个列表中,如下:

1 ret = re.findall('a','abac')
2 print(ret)  #['a', 'a']

3 ret = re.findall('ab','abac')
4 print(ret)  #['ab']

sub()以及subn()方法

1 ret = re.sub('\d', '*', 'a1b2c3')#将数字替换成'*',默认替换所有的数字
2 print(ret) #a*b*c*
3 
4 ret = re.sub('\d', '*', 'a1b2c3', 1)#将数字替换成'*',参数1表示只替换1个
5 print(ret) #a*b2c3
6 
7 ret = re.subn('\d', '*', 'a1b2c3')#将数字替换成'*',返回一个元祖(替换后的字符串,替换的次数)
8 print(ret) #('a*b*c*', 3)

compile()方法
此方法是先把正则表达式编译好,以方便多次使用,如下:

1 obj = re.compile('\d{3}') 
#将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
2 ret = obj.search('abc123eeee') 
#正则表达式对象调用search,参数为待匹配的字符串
3 print(ret.group())  #结果 : 123

转载于:https://blog.51cto.com/12884584/2349171