我有一个字符串:
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?"