Next: Ripetizioni
Up: Espressioni regolari
Previous: Introduzione alle Espressioni Regolari
  Indice
Intervalli come quello sopra possono essere specificati tramite particolari
sequenze che corrispondono a classi di caratteri, eccone alcune:
- d
- corrisponde a una qualsiasi cifra decimale; è equivalente a [0-9].
- D
- corrisponde a un qualsiasi carattere che non sia una cifra; è equivalente a [0-9].
- s
- corrisponde a uno spazio bianco; è equivalente a
[ tnrfv].
(Lo spazio bianco in testa è necessario! t corrisponde a uno stop di tabulazione,
n a un `newline' ecc.).
- S
- corrisponde a un qualsiasi carattere che non sia uno spazio bianco; è
equivalente a [ tnrfv].
- w
- corrisponde a un qualsiasi carattere alfanumerico; equivale a: [a-zA-Z0-9_].
- W
- corrisponde a un qualsiasi carattere non alfanumerico; equivale a: [a-zA-Z0-9_].
(Per una completa trattazione dobbiamo rivolgerci alla Library Reference e
il Regular Expression HOWTO).
Oltre che a segnalare tali sequenze, `' svolge la funzione di proteggere
(il noto `escape') caratteri speciali quali a es.`*', facendo sì che vengano
interpretati come caratteri normali.
Purtroppo questo può essere fonte di problemi, in quanto `'
è utilizzato in Python quale carattere di escape nelle stringhe letterali.
Se per esempio vogliamo trovare una RE che corrisponda alla stringa 'index'
che s'incontra in file sorgenti .tex . È necessario proteggere la barra obliqua inversa
con una seconda barra, quindi si ottiene 'index', che rappresenta
la stringa che dev'essere passata a compile().
Per esprimerla come stringa letterale tocca però proteggere nuovamente le barre oblique inverse,
per cui si ottiene un folle 'index'.
Quindi per esprimere un `' letterale ne occorrono ben quattro.
("Letterale" in Python è un elemento di programma, una notazione per valori costanti di alcuni
tipi built-in. Può essere un numero o una stringa, visto che i caratteri sono stringhe
di lunghezza unitaria).
Per evitare tale moltiplicazione delle barre oblique inverse, nei pattern complessi si può
utilizzare la notazione raw per le stringhe. Prefissando a una stringa letterale una r
si otterrà che i caratteri speciali non vengano gestiti in modi particolari. A esempio la nostra
index sarà scritta come stringa raw r'
index'
Altri metacaratteri importanti sono
- è di fatto l'or alternativo. Se A e B sono RE allora anche AB
avrà un match con ogni stringa che contenga 'A' oppure 'B'.
ha una priorità molto bassa, e serve per avere stringhe alternate con più caratteri.
Per esempio 'taatga' troverà match con 'taa' e 'tga' ma non con 'ta', 'aa', 'tg'.
- .
- corrisponde a un qualsiasi carattere eccetto un newline. Affinché corrisponda
anche a un newline bisogna abilitare l'opzione DOTALL.
- (`caret') corrisponde all'inizio della stringa, nel modo MULTILINE significa anche
'subito dopo un newline'. Inoltre serve per specificare un intervallo di caratteri tramite
'complemento', come riportato sopra.
- $
- corrisponde alla fine della stringa, nel modo MULTILINE significa anche
'subito prima di un newline'; 'dna' corrisponde sia a 'dna' che a 'dna reversed', 'dna2'
ecc. mentre 'dna$' corrisponde solo a 'dna'.
Next: Ripetizioni
Up: Espressioni regolari
Previous: Introduzione alle Espressioni Regolari
  Indice
2004-11-02