Come posso sostituire la prima occorrenza di un personaggio in ogni parola?
Di 'che ho questa stringa:
hello @jon i am @@here or @@@there and want some@thing in '@here"
# ^ ^^ ^^^ ^ ^
E voglio rimuovere il primo @su ogni parola, in modo da finire con una stringa finale come questa:
hello jon i am @here or @@there and want something in 'here
# ^ ^ ^^ ^ ^
Solo per chiarimenti, i caratteri "@" appaiono sempre insieme in ogni parola, ma possono essere all'inizio della parola o tra altri caratteri.
Sono riuscito a rimuovere il carattere "@" se si verifica solo una volta usando una variante della regex che ho trovato in Elimina sottostringa quando si verifica una volta, ma non quando due volte di seguito in Python , che utilizza un lookahead negativo e un lookbehind negativo:
@(?!@)(?<!@@)
Vedi l'output:
>>> 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"
Quindi il prossimo passo è sostituire "@" quando si verifica più di una volta. Questo è facile facendo s.replace('@@', '@')rimuovere "@" da qualunque punto si verifichi.
Tuttavia, mi chiedo: c'è un modo per fare questa sostituzione in un colpo solo?
@Hello@Theredove @non sarebbe consecutiva?
