Voglio sostituire solo la prima occorrenza di un'espressione regolare in una stringa. C'è un modo conveniente per farlo?Come sostituire la prima occorrenza di un'espressione regolare in Python?
22
A
risposta
5
specificare l'argomento count
in re.sub(pattern, repl, string[, count, flags])
Il conteggio argomento opzionale è il numero massimo di modello ricorrenze essere sostituiti; il conteggio deve essere un numero intero non negativo . Se omesso o zero, tutte le occorrenze saranno sostituite da .
33
re.sub()
ha un parametro count
che indica quante sostituzioni da eseguire. Si può solo impostare che a 1:
>>> s = "foo foo foofoo foo"
>>> re.sub("foo", "bar", s, 1)
'bar foo foofoo foo'
>>> s = "baz baz foo baz foo baz"
>>> re.sub("foo", "bar", s, 1)
'baz baz bar baz foo baz'
Edit: E una versione con un oggetto SRE compilato:
>>> s = "baz baz foo baz foo baz"
>>> r = re.compile("foo")
>>> r.sub("bar", s, 1)
'baz baz bar baz foo baz'