Wie kann ich das erste Vorkommen eines Zeichens in jedem Wort ersetzen?
Angenommen, ich habe diese Zeichenfolge:
hello @jon i am @@here or @@@there and want some@thing in '@here"
# ^ ^^ ^^^ ^ ^
Und ich möchte das erste @
bei jedem Wort entfernen , damit ich am Ende eine letzte Zeichenfolge wie diese habe:
hello jon i am @here or @@there and want something in 'here
# ^ ^ ^^ ^ ^
Nur zur Verdeutlichung werden "@" -Zeichen in jedem Wort immer zusammen angezeigt, können sich jedoch am Wortanfang oder zwischen anderen Zeichen befinden.
Ich habe es geschafft, das "@" -Zeichen zu entfernen, wenn es nur einmal vorkommt, indem ich eine Variation des regulären Ausdrucks verwendet habe, den ich in " Teilzeichenfolge löschen" gefunden habe, wenn es einmal vorkommt, aber nicht, wenn es in Python zweimal hintereinander vorkommt , wobei ein negativer Lookahead und ein negativer Lookbehind verwendet werden:
@(?!@)(?<!@@)
Siehe die Ausgabe:
>>> s = "hello @jon i am @@here or @@@there and want some@thing in '@here"
>>> re.sub(r'@(?!@)(?<!@@)', '', s)
"hello jon i am @@here or @@@there and want something in 'here"
Der nächste Schritt besteht also darin, das "@" zu ersetzen, wenn es mehr als einmal auftritt. Dies ist einfach, indem Sie s.replace('@@', '@')
das "@" von der Stelle entfernen, an der es erneut auftritt.
Ich frage mich jedoch: Gibt es eine Möglichkeit, diesen Ersatz auf einmal durchzuführen?
@Hello@There
Wo @
wäre nicht aufeinanderfolgend?