domenica 30 luglio 2023

Regular expression

 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.

Nessun commento:

Posta un commento