编程语言
首页 > 编程语言> > python – 替换多次出现的字符串中的模式

python – 替换多次出现的字符串中的模式

作者:互联网

我有一个字符串:

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?"

标签:substitution,python,regex
来源: https://codeday.me/bug/20190830/1770989.html