Python替换方法奇怪的行为

时间:2018-06-09 20:18:39

标签: python replace

请帮忙解释一下。我尝试添加max参数,但没有帮助。

 key = "tea-1_a-1"
 print(key.replace("a-1","a-2")) # prints 'tea-2_a-2'

我需要tea-1_a-2

2 个答案:

答案 0 :(得分:2)

尝试以下方法:

key = "tea-1_a-1"
print(key.replace("_a-1","_a-2")) 

答案 1 :(得分:0)

正则表达式可以通过在模式之前查找字符串的开头或下划线字符来完成工作:

>>> import re
>>> key = 'a-1_tea-1'
>>> re.sub(r'(?:^|(?<=_))a-1', 'a-2', key)
'a-2_tea-1'
>>> key = 'tea-1_a-1'
>>> re.sub(r'(?:^|(?<=_))a-1', 'a-2', key)
'tea-1_a-2'

有关详细信息,请参阅Python Regular expression syntax文档。