next up previous contents
Next: I metacaratteri Up: Espressioni regolari Previous: Espressioni regolari   Indice

Introduzione alle Espressioni Regolari

Le espressioni regolari6.1 sono una funzionalità che permette di ottenere risultati notevoli attraverso la ricerca di corrispondenze di testo (``pattern matching''). In Python è disponibile il modulo re che implementa la gestione efficiente delle espressioni regolari in stile Perl. Come al solito per poterlo utilizzare è necessario importare il modulo che le implementa:

import re
Esso permette di 'compilare' le nostre espressioni regolari in oggetti specifici i cui metodi più importanti sono search e match.

Le espressioni regolari operano sulle stringhe, e le stringhe più semplici sono costituite da singoli caratteri. La maggior parte dei caratteri corrisponde semplicemente a se stessa, quindi a corrisponderà alla stringa 'a' (più avanti vedremo come si può discriminare o meno tra maiuscolo e minuscolo), stessa cosa per una stringa costituita da caratteri ordinari, come a esempio 'dna'.

Alcuni caratteri assumono invece significati particolari e vengono chiamati metacaratteri. Nel caso in cui si voglia interpretarli come caratteri ordinari dovranno essere protetti. Eccone una lista completa

[ \ { | ( )  ^ $ ? + * .
I metacaratteri costituiscono uno dei fondamenti della potenza delle espressioni regolari, da qui in avanti indicate come RE.

Insiemi di caratteri sono specificati tramite le parentesi quadre [ e ]. Per esempio

[abc]
corrisponderà a uno qualsiasi dei caratteri tra [ e ], l'intervallo completo tra due caratteri può essere abbreviato usando -, quindi l'esempio sopra è equivalente a
[a-c]
È anche possibile indicare un carattere esterno a un intervallo ('complementazione'), usando il metacarattere $^\wedge$ per esempio a
[^c]
corrisponderà qualunque carattere eccetto 'c', ma a
[^]
corrisponderà semplicemente '$^\wedge$'. Infatti eventuali metacaratteri compresi tra [ e ] verranno presi alla lettera, quindi
[]]
corrisponderà a ']'.

Le RE adiacenti vengono concatenate, per cui se A e B sono due espressioni regolari, AB è un'espressione regolare. Se una stringa p corrisponde ad A e un'altra stringa q a B, la stringa pq corrisponderà ad AB. Possiamo costruire insiemi di caratteri concatenando intervalli, a esempio

[a-zA-Z]
corrisponderà a un qualunque carattere alfabetico.


next up previous contents
Next: I metacaratteri Up: Espressioni regolari Previous: Espressioni regolari   Indice
2004-11-02