Python学习之路--re模块

常用方法

findall 找到所有满足条件的结果并放入列表中

?:放在分组第一个,取消分组

ret = re.findall('a','eva egon yuan')
print(ret)#['a', 'a']
ret = re.findall('[a-z]+','eva egon yuan')
print(ret)#['eva', 'egon', 'yuan']

search 从前往后,找到第一个返回,返回的变量需要调用group才能拿到结果

如果没有找到,那么返回None,调用group会报错

ret = re.search('','')

print(ret.group(1))  匹配分组里面的字符

ret = re.search('a','eva egon yuan')
print(ret)#<_sre.SRE_Match object; span=(2, 3), match='a'>

ret = re.search('a','eva egon yuan')
if ret:
print(ret.group())#a

match 从头开始匹配,如果可以匹配上就返回一个变量,匹配的内容需要用group

如果没有找到,那么返回None,调用group会报错

ret = re.match('','')

print(ret.group(1))  匹配分组里面的字符

ret = re.match('[a-z]+','eva egon yuan')
if ret:
print(ret.group())#eva

split

re.split('(。。。)','。。。') 加入分组()会保留满足正则表达式的字符

ret = re.split('[ab]','abcd')  #先按'a'分割得到bcd,再按'b'分割
print(ret)#['', '', 'cd']

sub

ret = re.sub('\d','H','eva23224sereesdqw4',1)#将数字替换成H,参数1表示值替换一个
print(ret)#evaH3224sereesdqw4

subn

ret = re.subn('\d','H','eva23224sereesdqw4')#将数字替换成H,返回元组,替换多少次
print(ret)#('evaHHHHHsereesdqwH', 6)

compile

obj = re.compile('\d{3}')#将正则表达式编译成为一个 正则表达式对象
ret = obj.search('ewqwr123fe456')
print(ret.group())#123

iter

ret = re.finditer('\d','dffs453fd')#finditer返回一个存放匹配结果的迭代器
print(ret)#<callable_iterator object at 0x0000025B29CA4B38>
for i in ret:
print(i.group())

 

posted on 2019-05-30 21:00  久加  阅读(191)  评论(0)    收藏  举报