Come sostituire Regex su Python

August 19

Il linguaggio di programmazione Python utilizza espressioni regolari per il pattern matching. I programmatori spesso usano le espressioni regolari per la ricerca di testo per i modelli di lettere, simboli e numeri. La potenza delle espressioni regolari deriva dal fatto che essi non sono utilizzati per cercare qualcosa di specifico, come la parola 'cane'; invece, cercano parole che corrispondono a un determinato modello, come ad esempio i nomi di dominio di posta elettronica. Ad esempio, è possibile utilizzare Python per sostituire i nomi di dominio di un elenco di indirizzi e-mail utilizzando le espressioni regolari.

istruzione

1 Aprire l'editor di testo IDLE fornito in dotazione con il linguaggio Python, cliccando sulla sua icona. L'icona editor di testo IDLE si trova nella directory Python nella lista dei programmi installati (che si trova in tutti i programmi nel menu Start di Windows, e all'interno della cartella Applicazioni in OSX). Un file di codice sorgente vuoto si apre nella finestra dell'editor principale.

2 Includere il modulo 'ri' scrivendo questa riga nella parte superiore del file di codice sorgente:

importazione re

3 Dichiarare una stringa e assegnare alcuni indirizzi di posta elettronica ad esso, come ad esempio questo:

EmailAddresses = '[email protected], [email protected], [email protected]'

4 Creare una espressione regolare che cerca tutte le possibili permutazioni di testo in indirizzi e-mail validi. Le espressioni regolari lavorano attraverso la ricerca di un modello di caratteri in una stringa di testo. Il modello siete interessati a è ogni due parole unite da un simbolo @. Poiché gli indirizzi e-mail hanno molti caratteri validi, si consiglia di abbinare tutti i possibili caratteri di ogni parola prima e dopo il simbolo @. Ciò si ottiene con l'espressione regolare [\ W.-], e con l'aggiunta di un + alla fine di esso, è possibile ripetere questo per tutti i personaggi. L'espressione regolare completato può essere salvata in una stringa come questa:

regexPattern = r '([\ w .-] +) @ ([\ w .-] +)'

5 Creare una espressione regolare che sostituisce tutti i nomi di dominio con "zmail.com." In questa espressione regolare, la sequenza di caratteri backreference \ 1 è usato per sostituire il dominio degli indirizzi di posta elettronica. La backreference si riferisce ad una posizione in un'espressione regolare circondata tra parentesi. Applicando l'espressione regolare al primo backreference, si salva l'indirizzo di posta elettronica, ma mettere da parte il vecchio nome di dominio. È quindi possibile aggiungere un nuovo nome di dominio, come '@ zmail.com.' Per salvare questa seconda espressione regolare a una variabile, è possibile scrivere questo:

regexReplacement = r '\ [email protected]'

6 Applicare le espressioni regolari per la stringa che contiene gli indirizzi email come questo:

EmailAddresses = re.sub (regexPattern, regexReplacement, EmailAddresses)

7 Stampare gli indirizzi di posta elettronica che utilizzano questa riga di codice. Python 3 utilizza questa sintassi per la stampa: stampa (emailaddresses), mentre Python 2 utilizza la seguente sintassi: EmailAddresses stampa.

8 Eseguire il programma premendo il tasto F5. L'output del programma è il seguente:

[email protected], [email protected], [email protected]