是否可以忽略 python replace() 引号中的字符串?

扎眼的阳光 python 205

原文标题Is it possible to ignore string in quotes for python replace()?

是否可以忽略 python replace() 引号中的字符串?我有一个这样的字符串变量:

a = "I like bananas 'I like bananas'"

我想通过replace()得到这样的结果:

"I like apples 'I like bananas'".

但是当我执行print(a.replace("bananas", "apples"))时,结果是:

"I like apples 'I like apples'".

如何使replace()忽略引号中的字符串?

原文链接:https://stackoverflow.com//questions/71508340/is-it-possible-to-ignore-string-in-quotes-for-python-replace

回复

我来回复
  • gnight的头像
    gnight 评论

    用’分割字符串,只处理数组的奇数元素,重新组合字符串

    a = "I like bananas 'I like bananas'"
    ap = a.split("'")
    ar = [ ai.replace("bananas", "apples")  if i%2==0 else ai for i,ai in enumerate(ap)]
    print("'".join(ar))
    
    2年前 0条评论
  • Tim-Erwin的头像
    Tim-Erwin 评论

    不,这是不可能的,你不能让replace忽略那些匹配。您必须编写自己的解决方案。

    2年前 0条评论
  • Python learner的头像
    Python learner 评论

    您可以使用countvalue(替换方法的可选参数)来指定要替换的旧值的出现次数。它适用于两者。

    a = "I like bananas \"I like bananas\""
    print(a.replace("bananas", "apples",1))
    
    a = "I like bananas 'I like bananas'" 
    print(a.replace("bananas", "apples",1))
    
    2年前 0条评论