Comment rechercher et remplacer n-ième occurrence de mot dans une phrase à l'aide de python expression régulière?

À l'aide de python expression régulière seulement, comment trouver et remplacer n-ième occurrence de mot dans une phrase?
Par exemple:

str = 'cat goose  mouse horse pig cat cow'
new_str = re.sub(r'cat', r'Bull', str)
new_str = re.sub(r'cat', r'Bull', str, 1)
new_str = re.sub(r'cat', r'Bull', str, 2)

J'ai une phrase ci-dessus où le mot "chat" apparaît deux fois dans la phrase. Je veux 2ème occurrence du 'chat' être modifié en 'Bull' en laissant 1er 'chat' mot intacte. Ma dernière phrase serait:
"cat goose souris, cheval, cochon Taureau vache". Dans mon code ci-dessus, j'ai essayé 3 différents moments ne pouvait pas obtenir ce que je voulais.

  • Je pense que c'est mieux si vous divisez la chaîne, de compter des occurrences de cat et de retourner une liste modifiée avec le nth on a remplacé. Peut-être un peu plus lent, mais qui n'est pas pour déplaire et sera certainement plus lisible qu'un poilu regexp.
InformationsquelleAutor juggernaut | 2014-12-21