Metodo di sostituzione delle espressioni regolari in Python
In questo tutorial, esamineremo l’uso e la funzione del metodo re.sub()
e esamineremo i codici di esempio. Il modulo re
di Python fornisce le varie funzionalità utilizzando espressioni regolari sia per stringhe Unicode che per stringhe a 8 bit. Le funzionalità includono la sostituzione delle stringhe, la suddivisione e la corrispondenza, ecc.
Sostituzione delle espressioni regolari utilizzando il metodo re.sub()
in Python
Il metodo re.sub(pattern, repl, string, count=0)
prende la string
come input e sostituisce le occorrenze più a sinistra di pattern
con repl
. Se non viene trovato alcun pattern
nell’argomento string
, viene restituita la string
senza alcuna modifica.
L’argomento pattern
deve essere nella forma di un’espressione regolare. Il repl
può essere una stringa o una funzione. Se l’argomento repl
è una stringa, allora il pattern
nella string
è sostituito dalla stringa repl
. Se una funzione viene passata come argomento repl
, allora la funzione sarà chiamata ogni volta che viene trovata un’occorrenza del pattern
. La funzione accetta matchObject
come input e restituisce la stringa di sostituzione. Il matchObject
avrà il suo valore uguale a True
se la corrispondenza viene trovata e avrà il suo valore uguale a None
altrimenti.
L’argomento opzionale count
rappresenta il numero massimo di occorrenze del pattern
che vogliamo sostituire nella string
.
Il codice di esempio seguente mostra come utilizzare il metodo re.sub()
per sostituire alcuni pattern dalla stringa utilizzando l’espressione regolare:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
Produzione:
Hello How are you Where have you been
L’esempio di codice precedente rimuove i caratteri specificati nell’argomento pattern
con lo spazio vuoto, che è il nostro argomento repl
nel codice precedente.
Possiamo anche usare la funzione come argomento repl
per eseguire la stessa operazione restituendo " "
ogni volta che viene trovata un’occorrenza dell’argomento repl
, come mostrato nel codice di esempio seguente:
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
Produzione:
Hello How are you Where have you been