Introduzione alle espressioni regolari in Python
Le espressioni regolari sono comandi per ricerche e sostituzioni complesse (o semplicemente ricerche). Permettono di fare cose molto interessanti, ma, sfortunatamente, sono piuttosto difficili da imparare.
Per iniziare a lavorare con le espressioni regolari
in Python, dobbiamo importare il modulo speciale
re:
import re
Il modulo re include metodi
progettati per lavorare con le espressioni
regolari. Un'espressione regolare
è un insieme di comandi e consiste
di due tipi di caratteri: quelli che
rappresentano se stessi e i caratteri comando,
chiamati caratteri speciali.
È meglio familiarizzare con le espressioni regolari
partendo dall'esempio del metodo sub, che
è utilizzato per le sostituzioni in una stringa. Il primo
parametro del metodo accetta cosa sostituire,
il secondo - con cosa sostituire. Nel terzo parametro
specifichiamo la stringa in cui effettuare la
sostituzione. Nel quarto parametro opzionale
impostiamo il numero di sostituzioni. La sostituzione più semplice
con questo metodo
sarà così:
res = re.sub('a', '!', 'bab')
print(res) # visualizzerà 'b!b'
Come avrai notato, nell'espressione regolare
le lettere rappresentano se stesse. Lo stesso
vale per le cifre. Sostituiamo la cifra
2 con !:
res = re.sub('2', '!', '12abc3')
print(res) # visualizzerà '1!abc3'
Invece, il punto è un carattere speciale
e rappresenta qualsiasi carattere. Nel prossimo
esempio troviamo una sottostringa con questo
modello: lettera 'x', poi qualsiasi
carattere, poi di nuovo lettera 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # visualizzerà '! eee'
Data la stringa:
txt = 'ahb acb aeb aeeb adcb axeb'
Scrivi un'espressione regolare che trovi le stringhe
'ahb', 'acb', 'aeb'
secondo il modello: lettera 'a', qualsiasi
carattere, lettera 'b'.
Data la stringa:
txt = 'aba aca aea abba adca abea'
Scrivi un'espressione regolare che trovi le stringhe
'abba', 'adca', 'abea'
secondo il modello: lettera 'a', 2
caratteri qualsiasi, lettera 'a'.
Data la stringa:
txt = 'aba aca aea abba adca abea'
Scrivi un'espressione regolare che trovi le stringhe
'abba' e 'abea', senza catturare
'adca'.