Python开发——re.sub

【背景】

Python中的正则表达式方面的功能,很强大。

其中就包括re.sub,实现正则的替换。

功能很强大,所以导致用法稍微有点复杂。

所以当遇到稍微复杂的用法时候,就容易犯错。

所以此处,总结一下,在使用re.sub的时候,需要注意的一些事情。


在解释具体的注意事项之前,先把其具体的解释贴出来:


re.sub

1 re.sub的功能

re是regular expression的缩写,表示正则表达式

sub是substitute的缩写,表示替换;

re。sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能:

举个最简单的例子:

如果输入字符串是:

inputStr = 'hello 111 world 111'

那么你可以通过

replaceStr = inputStr.replace('111', '222')

去换成

'hello 222 world 222'

但是,如果输入字符串是:

inputStr = 'hello 123 world 456'

而你想把123和456,都换成222

(以及其他还有更多的复杂情况的时候),

那么就没法直接通过字符串的replace达到这一目的了。

就需要将借助于re.sub,通过正则表达式,来实现这种相对复杂的字符串的替换:

replaceStr = re.sub('\d+', '222', inputStr)

当然,实际情况中,会有比这个例子更加复杂的,其他各种特殊情况,就只能通过此re.sub去实现如此复杂的替换功能了。

所以,re.sub的含义,作用,功能就是:

对于输入的一个字符串,利用正则表达式的强大的字符串处理功能,去实现相对复杂的字符串替换处理,然后返回被替换后的字符串。

其中re.sub还支持各种参数,比如count制定要替换的个数等等。

下面就是来详细解释各个参数的含义。


2 re.sub的各个参数的详细解释

re.sub共有五个参数。

其中三个必选参数:pattern,repl,string

两个可选参数:count,flags

2.1 第一个参数:pattern

pattern,表示正则中的模式字符串,这个没太多要解释的。

需要知道的是:

反斜杠加数字(\N),则对应着匹配的组(matched group)

比如\6,表示匹配前面patter中的第6个group

意味着,pattern中,前面肯定是存在对应的,第6个group,然后你后面也才能去引用

比如,想要处理:

Hello crifan, nihao crifan

且此处的前后crifan是一样的。

而想要把前面的字符串crifan,韩城crifanli

就可以用这样的re.sub实现替换:

inputStr = 'hello crifan, nihao crifan'
replaceStr = re.sub(r"hello (\w+), nihao \1', crifanli', inputStr)
print "replaceStr =", replaceStr



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值