如何实现Python字符串指定字符仅单次替换而非全部匹配项
问题原因
Python内置的str.replace()方法默认会替换所有匹配的字符,因此你原来的写法会把后四位里的所有9都替换为1。
解决方案
给replace()方法传入第三个参数count,指定最大替换次数为1即可:
string = "Forever9999" # 第三个参数1表示仅替换第一个匹配到的字符 string = string[:-4] + string[-4:].replace("9", "1", 1)
运行后输出结果为Forever1999,和你的预期一致。
补充说明
如果你需要指定替换第N次出现的字符,或者从右往左替换,可以配合字符串查找方法实现,比如要替换第二个出现的9可以这样写:
string = "Forever9999" # 找到第二个9的下标 second_9_idx = string.find("9", string.find("9") + 1) string = string[:second_9_idx] + "1" + string[second_9_idx+1:]
内容的提问来源于stack exchange,提问作者matt2440
相关产品推荐
相关产品推荐

