re模块

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章