Sostituisci la prima occorrenza di stringa in Python


116

Ho qualche stringa di esempio. Come posso sostituire la prima occorrenza di questa stringa in una stringa più lunga con una stringa vuota?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')

Cosa cerchi e sostituisci? Cosa c'è dentro url?
BoltClock

Voglio sostituire la prima occorrenza di "testo" nella mia stringa
dell'URL

Risposte:


239

La funzione string replace () risolve perfettamente questo problema:

string.replace (s, old, new [, maxreplace])

Restituisce una copia della stringa s con tutte le occorrenze della sottostringa vecchia sostituita da nuova. Se viene fornito l'argomento opzionale maxreplace, le prime occorrenze maxreplace vengono sostituite.

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'

20

Usa re.subdirettamente, questo ti permette di specificare un count:

regex.sub('', url, 1)

(Notare che l'ordine degli argomenti è replacement, originalnon il contrario, come si potrebbe sospettare.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.