Nur mit Python regulärer Ausdruck, wie findet und ersetzt man das n-te Auftreten eines Wortes in einem Satz? Zum Beispiel:Wie findet und ersetzt man das n-te Auftreten eines Wortes in einem Satz mit dem regulären Python-Ausdruck?
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)
Ich habe einen Satz oben, wo das Wort ‚Katze‘ erscheint zweimal im Satz. Ich möchte, dass das zweite Vorkommen der "Katze" in "Bull" geändert wird, wobei das erste "Katzen" -Wort unverändert bleibt. Mein letzter Satz würde aussehen wie: "Katze Gans Maus Pferd Schwein Stier Kuh". In meinem Code oben versuchte ich 3 verschiedene Male konnte ich nicht bekommen was ich wollte.
Ich denke, es ist besser, wenn Sie die teilen string, zähle das Vorkommen von 'cat' und gebe eine modifizierte Liste zurück, wobei die' nth' ersetzt wird. Könnte ein wenig langsamer sein, aber das ist vielleicht egal und wird definitiv lesbarer sein als ein haariger Regexp. –