Espressioni regolari

Guida a Perl
di M. Liverani

In questo contesto parlando di espressioni regolari intenderemo una espressione costruita secondo una sintassi ben precisa che ci permette di descrivere uno schema di stringa.

Senza entrare in ulteriori dettagli cerchiamo di capire questo concetto mediante un esempio elementare. Supponiamo di voler ``descrivere'' tutte le stringhe composte secondo il seguente schema: un numero con un qualsiasi numero di cifre, un carattere di spaziatura o tabulazione ed una parola composta da caratteri qualsiasi. Con una espressione regolare diventa banale descrivere questa ``ricetta'' di composizione di una stringa:

\d+\s.+

I primi due caratteri ``\d'' indicano la presenza di un carattere numerico (0, 1, 2, ..., 9); il carattere ``+'' che segue una certa sequenza indica che il carattere rappresentato può essere ripetuto una o più volte. La sequenza ``\s'' indica un qualsiasi carattere di spaziatura o di tabulazione. Infine il punto ``.'' indica un carattere qualsiasi e il simbolo ``+'' finale sta ad indicare che questo carattere può essere ripetuto una o più volte.

Questa espressione regolare descriverà quindi stringhe del tipo ``1234 pippo'', ``1 ab$\%&xy'', ``1 2''. Le seguenti stringhe invece non risultano ``descritte'' dalla precedente espressione regolare: ``a b'', ``pippo'', ``albero casa'', ``1+3=4''.

La seguente tabella descrive sinteticamente i termini che possono comporre una epressione regolare:

. qualsiasi carattere escluso il new line (``\n'')
[a-z0-9] qualsiasi carattere di questo insieme
[^a-z0-9] qualsiasi carattere esclusi quelli di questo insieme
\d una cifra qualsiasi; equivalente a ``[0-9]''
\D un carattere che non sia una cifra; equivalente a ``[^0-9]''
\w un carattere alfanumerico; equivalente a ``[a-zA-Z0-9]''
\W un carattere non alfanumerico; equivalente a ``[^a-zA-Z0-9]''
\s un carattere di spaziatura (spazio, tabulazione, new line, ecc.)
\S un carattere non di spaziatura
\n il carattere new line
\r il carattere return (ritorno carrello)
\t il carattere di tabulazione
\f form feed, carattere di avanzamento di pagina
\b backspace, cancellazione di un carattere a sinistra
\0 null, il carattere nullo
\| il carattere ``|''
\\ il carattere ``\''
\* il carattere ``*''
x? il carattere x ripetuto 0 o 1 volta
x* il carattere x ripetuto 0 o più volte
x+ il carattere x ripetuto una o più volte
pippo la stringa ``pippo''
aa|bb|cc la stringa ``aa'' oppure la stringa ``bb'' oppure la stringa ``cc''
^ la stringa inizia con l'espressione regolare seguente
$ la stringa termina con l'espressione regolare precedente
Tab. 11: Termini per la composizione di una espressione regolare


© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /perl/espressioni.asp?print=ok