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())
浙公网安备 33010602011771号