Ecco un esempio di codice Python che utilizza le espressioni regolari (regular expressions):
import re
# Definizione del pattern da cercare
pattern = r'\b(\w+)\b'
# Testo di input
testo = "Questo è un esempio di testo. Contiene parole e numeri come 12345."
# Trova tutte le parole nel testo
parole = re.findall(pattern, testo)
# Stampa le parole trovate
for parola in parole:
print(parola)
In questo esempio, viene utilizzata la libreria `re` di Python per cercare tutte le parole nel testo di input. Il pattern `r'\b(\w+)\b'` corrisponde a una parola completa, dove `\b` indica un confine di parola e `(\w+)` corrisponde a una sequenza di caratteri alfanumerici. La funzione `findall` restituisce una lista di tutte le corrispondenze trovate nel testo. Infine, viene stampata ogni parola trovata.
Le espressioni regolari (o regex) in Python sono un modo potente per cercare, estrarre e manipolare testo in base a pattern specifici. Sono implementate nel modulo `re` di Python.
Le espressioni regolari sono definite utilizzando una combinazione di caratteri letterali e metacaratteri speciali che rappresentano modelli di testo da cercare. Ad esempio, il metacarattere `.` corrisponde a qualsiasi carattere singolo, mentre il metacarattere `*` indica che il carattere precedente può essere ripetuto zero o più volte.
Ecco un esempio di come utilizzare le espressioni regolari in Python:
import re
# Definiamo un pattern per cercare una sequenza di numeri nel testo
pattern = r'\d+'
# Testo di esempio
testo = 'Ho 3 mele e 5 banane nel mio cesto.'
# Utilizziamo il metodo search() per cercare il pattern nel testo
risultato = re.search(pattern, testo)
# Se il pattern viene trovato, otteniamo il risultato
if risultato:
print('Risultato trovato:', risultato.group())
else:
print('Nessun risultato trovato.')
In questo esempio, il pattern `r'\d+'` cerca una sequenza di uno o più numeri nel testo. Il metodo `search()` restituisce un oggetto `Match` se il pattern viene trovato, altrimenti restituisce `None`. Utilizziamo il metodo `group()` sull'oggetto `Match` per ottenere la corrispondenza effettiva trovata.
Le espressioni regolari offrono molti altri metacaratteri e funzionalità avanzate per manipolare il testo, come la ricerca di parole intere, la sostituzione di corrispondenze, la ricerca di pattern multipli e molto altro ancora. Per saperne di più, puoi consultare la documentazione ufficiale di Python sul modulo `re`.
Ecco una lista dei metacaratteri utilizzati nelle espressioni regolari in Python:
- `.`: corrisponde a qualsiasi carattere, tranne il carattere di nuova riga (\n).
- `^`: corrisponde all'inizio di una stringa.
- `$`: corrisponde alla fine di una stringa.
- `*`: corrisponde a zero o più occorrenze del carattere precedente.
- `+`: corrisponde a una o più occorrenze del carattere precedente.
- `?`: corrisponde a zero o una occorrenza del carattere precedente.
- `{n}`: corrisponde esattamente a n occorrenze del carattere precedente.
- `{n,}`: corrisponde a n o più occorrenze del carattere precedente.
- `{n,m}`: corrisponde da n a m occorrenze del carattere precedente.
- `[]`: specifica un insieme di caratteri da corrispondere.
- `|`: corrisponde a uno dei due pattern separati da |.
- `()`: raggruppa un pattern e restituisce il match trovato.
- `\`: utilizzato per "scappare" un carattere speciale, ad esempio \. corrisponde a un punto letterale.
Questi sono solo alcuni dei metacaratteri disponibili nelle espressioni regolari in Python. È possibile trovare ulteriori informazioni nella documentazione ufficiale di Python.