踩坑记录一:lstrip/rstrip切割错误问题

前一段时间交接了某个同事的项目,其中有个bug记录一下。

背景描述:若某个字符串的开头包含特定字符,则去除。

该同事的实现方式为:

# result的预期结果:牛舌,实际结果:舌
ori_str = "黑牛牛舌"
target = '黑牛'
result = ori_str.lstrip(target)
result
'舌'

原理:lstrip会删除ori_str字符串中开头处,且位于 target删除序列的字符,是按字符挨个匹配的,所以从左开始,“黑牛”在删除序列中,“牛”也在删除序列中。例如:下面这个例子:

ori_str_2 = "黑黑牛牛舌"
result_2 = ori_str_2.lstrip(target)
result_2
'舌'

解决办法:用正则最稳妥

import re
ori_str = "黑牛牛舌"
target = '黑牛'
result = re.sub("^%s" % target, "", ori_str)  # 以target开头的部分用""代替

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值