python字符串替换re.sub()方法解析
pattern可以是一个字符串也可以是一个正则,用于匹配要替换的字符,如果不写,字符串不做修改。\1代表第一个分组
repl是将会被替换的值,repl可以是字符串也可以是一个方法。如果是一个字符串,反斜杠会被处理为逃逸字符,如\n会被替换为换行,等等。repl如果是一个function,每一个被匹配到的字段串执行替换函数。
\g<1>代表前面pattern里面第一个分组,可以简写为\1,\g<0>代表前面pattern匹配到的所有字符串。
count是pattern被替换的最大次数,默认是0会替换所有。有时候可能只想替换一部分,可以用到count
实例1:
a=re.sub(r'hello','ilovethe','helloworld') print(a)'ilovetheworld'#helloworld里面的hello被ilovethe替换
实例2:
>>>a=re.sub(r'(\d+)','hello','mynumeris400anddoornumis200') >>>a 'mynumerishelloanddoornumishello'#数字400和200被hello替换
实例3:
a=re.sub(r'hello(\w+),nihao\1',r'emma','hellosherry,nihaosherry') >>>a 'emma'#\1代表第一个分组的值即sherry,因为有两个sherry,所以用\1可以指代第二个,这样整个字符串被emma替换
示例4:
>>>a=re.sub('(\d{4})-(\d{2})-(\d{2})',r'\2-\3-\1','2018-06-07') >>>a '06-07-2018' >>>a=re.sub('(\d{4})-(\d{2})-(\d{2})',r'\g<2>-\g<3>-\g<1>','2018-06-07') >>>a '06-07-2018'#\2和\g<2>指代的的都是前面的第二个分组
示例5:
importre defreplace_num(str): numDict={'0':'〇','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'} print(str.group()) returnnumDict[str.group()] my_str='2018年6月7号' a=re.sub(r'(\d)',replace_num,my_str) print(a)#每次匹配一个数字,执行函数,获取替换后的值
和sub()函数一样,只是返回的是一个tuple,替换后的字符串和替换的个数
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。