Metodo di sostituzione delle espressioni regolari in Python

Muhammad Waiz Khan 24 luglio 2021
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