本文实例讲述了Python实现的从右到左字符串替换方法。分享给大家供大家参考,具体如下:
需要用到,但是发现python没有从右边开始替换的内置方法,默认的replace只是从左边开始,就索性自己写个,有需求的自己可以在此基础上搞个python hack,给str增加个rreplace方法。
利用python 的其它内置方法,11行代码就可以了
def rreplace(self, old, new, *max): count = len(self) if max and str(max[0]).isdigit(): count = max[0] while count: index = self.rfind(old) if index >= 0: chunk = self.rpartition(old) self = chunk[0] + new + chunk[2] count -= 1 return self
学无止境,最后搜索发现有种核心代码只有1行的实现方法
def rreplace(self, old, new, *max): count = len(self) if max and str(max[0]).isdigit(): count = max[0] return new.join(self.rsplit(old, count))
和 replace 基本一致
参数:
self -- 源字符串。
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回:
被替换后的字符串
举几个用例比较下就清楚了:
print rreplace("lemon tree", "e", "3") print rreplace("lemon tree", "e", "3", 1) print rreplace("lemon tree", "e", "3", 2) print rreplace("lemon tree", "tree", "") print rreplace("lemon tree", "notree", "notmatch")
运行结果:
l3mon tr33
lemon tre3
lemon tr33
lemon
lemon tree
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
问题内容: 我想在Python中执行字符串替换,但只执行第一个实例从右向左移动。在理想的世界中,我将拥有: 鉴于不存在的最佳方法是什么? 问题答案: 并可以用来模拟
本文向大家介绍python同时替换多个字符串方法示例,包括了python同时替换多个字符串方法示例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了python同时替换多个字符串方法示例,分享给大家,具体如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍python字符串替换第一个字符串的方法,包括了python字符串替换第一个字符串的方法的使用技巧和注意事项,需要的朋友参考一下 Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。 Python 替换字符串使用 变量.replace("被替换的内容","替换后的内容"[,次数]),替换次
本文向大家介绍python字符串替换的2种方法,包括了python字符串替换的2种方法的使用技巧和注意事项,需要的朋友参考一下 python 字符串替换 是python 操作字符串的时候经常会碰到的问题,这里简单介绍下字符串替换方法。 python 字符串替换可以用2种方法实现: 1是用字符串本身的方法。 2用正则来替换字符串 下面用个例子来实验下: a = 'hello word' 把a字符串里
问题内容: 这个简单的代码仅尝试用冒号替换分号(在i指定的位置)不起作用: 它给出了错误 如何解决此问题,以冒号代替分号?使用replace不起作用,因为该函数不占用索引-可能有一些我不想替换的分号。 例 在字符串中,我可能有许多分号,例如 我知道我想替换哪些(我在字符串中有索引)。使用替换无法正常工作,因为我无法对其使用索引。 问题答案: python中的字符串是不可变的,因此你不能将它们视为列
问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要