如果找到则插入子字符串

时间:2012-11-28 20:27:48

标签: python string

我在Python中给了一个字符串my_str。我想要做的是:如果my_str包含子字符串str1,则在子字符串str2后面插入一个字符串str1(并保留my_str的其余部分完好无损。)否则,什么都不做。 (假设my_str包含的子字符串不超过str1。)

我的想法是:做一个for循环来查找str1中是否存在my_str

for i in range(0, len(my_str)-len(str1)):
  if my_str[i:i+len(str1)] == str1:
    my_str = my_str[0:i] + str2 + my_str[i:]

我很好奇是否有任何神奇的方法可以做到这一点。

2 个答案:

答案 0 :(得分:8)

最简单的方法是使用str.replace()

>>> str1 = "blah"
>>> str2 = "new"
>>> "testblah".replace(str1, str1+str2)
'testblahnew'
>>> "testblahtest".replace(str1, str1+str2)
'testblahnewtest'
>>> "test".replace(str1, str1+str2)
'test'
>>> "blahtestblah".replace(str1, str1+str2)
'blahnewtestblahnew'

我们只需将原始值替换为附加到自身的新字符串,基本上插入新值。

替换()上的quick tutorial以获取更多示例。

答案 1 :(得分:1)

def myReplace(myStr, str1, str2):
    try:
        i = myStr.index(str1)
        answer = myStr[:i+len(str1)] + str2 + myStr[i+len(str1):]
        return answer
    except ValueError:
        return myStr

希望这有帮助