python正则表达式替换re.sub使用

最近在做处理文本的相关工作,需要对已有文本进行修改,如增加内容,删除内容,替换内容等。所以对re.sub的使用比较频繁。
为什么要使用正则替换,因为在编码过程中,读取文件内容进字符串后,如果是对数组进行操作,当需要将查找到的内容替换时,如果替换内容长度大于查找内容长度,将会修改原有文本中需要保留的内容。等等还有很多这种需要考虑空出位置的问题。所以使用re.sub来进行操作。
首先构建一个正则表达式。


import re
r='(\d{3}).*?\('
str='''123fdfdfd
('''
re.sub(r,'\\1'+'der',flags=re.S)
re.sub(r,'\g<0>',flags=re.S)

#re.sub第一个参数为正则表达式,第二个参数为要替换后内容,如果要使用正则表达式多行匹配,要使用re.S参数,需要加上flags,因为re.sub第三个参数不是设置正则表达式的属性。最初在网上看了一些代码,没有用flags,直接写re.S,结果自己使用过程中发现一直没有多行匹配。

\\1表示正则里面第一个括号括起来,\\2,\\3…以此类推在str中匹配的内容,即‘123’,表示将str的内容替换为‘123der’。也就是替换时可以将匹配到的内容选择性保留。、

如果要将全部内容都保留,可以使用\g<0>,\g<1>表示的也是第一个括号匹配到的内容,\g<2>。。。。也是以此类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值