python 字符串替换问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 字符串替换问题相关的知识,希望对你有一定的参考价值。
'stsf',这个字符串我想把第二个s改成别的字母,但是使用replace的话会把前面的s也改掉,求教,如何修改?
old = 'stsf'pos = old.find('s')
if (pos != -1):
new = old[:pos+1] + old[pos+1:].replace('s', 'A', 1)
print new
else:
print "Substring 's' not found!"
用字符串切片。
下面是更通用些的代码(封装成函数)。
def replaceN(string, old, new, n):''' Return a copy of the string with the 'n' occurrence of substring 'old' replaced by 'new'.
If substring 'old' is not found, original string is returned.
'''
if (n == 1): return string.replace(old, new, 1)
pos = -1; search = 0
while (search < n-1):
search += 1
pos = string.find(old, pos+1)
if (pos == -1): return string
return string[:pos+1] + string[pos+1:].replace(old, new, 1)
print replaceN('stsftst', 's', 'A', 2) 参考技术A
replace的第三个参数是指定替换几个
>>> "stsf".replace("s","A", 1)'Atsf'追问
对啊,我明白,所以我只想改第二个s啊
追答哦 不好意思 没仔细看。
如果你的字符串和替换第几个不固定的话,简单的方法好像没有。
def replaceit(s, replacefrom, replaceto, n=0):new_s, count = '', 0
for letter in s:
if letter == replacefrom:
count += 1
if (count == n or n == 0):
new_s += replaceto
continue
new_s += letter
return new_s
print replaceit("stsf", "s", "A", 2)
以上是关于python 字符串替换问题的主要内容,如果未能解决你的问题,请参考以下文章
python 中字符串替换问题 指定字符串替换 比如 /test/a.txt 只替换 a 把a 变成b,c,d,e,f等等等怎么替换