我有一个字符串:
I am Tony not charlie, Hey charlie how's you?
我想替换第二个“Charlie”,而不是第一个。
期望的字符串:
I am Tony not charlie, Hey Tony how's you?
我正在使用以下语句来执行此操作
>>> re.sub(r',\s\w{3}\scharlie\s', ' Tony ', 'I am Tony not charlie, Hey charlie how\'s you\?')
"I am Tony not charlie Tony how's you?"
但它取代的比我想要的更多。
我怎样才能让它只替换第二个“查理”而不替换其他任何东西?
最佳答案
将第一个子字符串(及其后的所有内容)替换为自身并添加一个限制 =1 以防止替换第 4 次、第 6 次等。
s = "I am Tony not charlie, Hey charlie how's you?"
print re.sub('(charlie.*?)charlie', r'\1Tony', s, 1)
关于python - 替换字符串中多次出现的模式一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23488969/