Espressione regolare — un modello che viene confrontato con un testo da sinistra a destra. La maggior parte dei caratteri nel modello significa se stessa e viene applicata ai caratteri corrispondenti nel testo.
Il vantaggio principale delle espressioni regolari sta nella possibilità di includere nel modello varianti e ripetizioni. Vengono codificate attraverso metacaratteri che non significano sé stessi ma, invece, vengono interpretati in un modo particolare.
Esistono due set di metacaratteri diversi: quelli che si utilizzano fra parentesi quadre e quelli che si utilizzano fuori parentesi quadre. Li vediamo in dettagli. Fuori parentesi quadre si utilizzano i seguenti metacaratteri:
Carattere
|
Valore
|
\
|
carattere di controllo standard (escape) che permette diverse varianti di applicazione
|
^
|
dichiara l’inizio di linea (o di testo in modalità con diverse linee)
|
$
|
dichiara la fine di linea (o di testo in modalità con diverse linee)
|
.
|
corrisponde a qualsiasi carattere, ad eccezione del segno da capo (di default)
|
[
|
inizio di descrizione di classe dei caratteri
|
]
|
fine di descrizione di classe dei caratteri
|
|
|
inizio di un ramo alternativo
|
(
|
inizio di un subpattern
|
)
|
fine di subpattern
|
?
|
estende il valore (
inoltre quantificatore 0 o 1
inoltre quantificatore di minimizzazione
|
*
|
0 o più
|
+
|
1 o più
anche "quantificatore possessivo"
|
{
|
inizio di quantificatore minimale/massimale
|
La parte di modello tra parentesi quadre si chiama "classe di caratteri". In classe di caratteri, i metacaratteri sono:
Carattere
|
Valore
|
\
|
carattere di controllo standard (escape)
|
^
|
nega la classe, ma solamente se all'inizio della classe
|
-
|
definisce un intervallo di caratteri
|
[
|
classe dei caratteri POSIX (solo se seguito da sintassi POSIX)
|
]
|
chiude la classe dei caratteri
|
|