我有一根绳子:
I am Tony not charlie, Hey charlie how's you?
我想换掉第二个“查理”,但不是第一个。
需要的字符串:
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?"
但它取代了我想要的。
我怎么能让它只替换第二个“查理”而不替换其他的?
最佳答案
你需要在表达式中使用分组。
看看这是不是你想要的:
>>> re.sub(r'(,\s\w*\s)charlie', r'\1Tony', r"I am Tony not charlie, Hey charlie
how's you?")
"I am Tony not charlie, Hey Tony how's you?"