Le Espressioni Regolari (RE) la cui sintassi è mutuata dal linguaggio Perl, permettono di effettuare operazioni di pattern marching e di traduzione su testi.
PHP offre una serie di funzioni per l'utilizzo di Espressioni Regolari (RE).
Le RE, mutuate dal linguaggio Perl, permettono di definire, tramite una particolare sintassi, un pattern
cioè una stringa variabile che verrà utilizzata dal "motore" (parser)
per verificare se all'interno di una stringa ci sia o meno una sequenza di caratteri che soddisfano la "maschera" richiesta.
Le RE si basano anche su una serie di modificatori che definiscono le modalità con cui il pattern verrà ricercato.
Prima di analizzare le funzioni per utilizzare le RE in PHP vediamo alcune indicazioni generali sull'utilizzo delle stesse:
per definire un pattern si utilizzano dei meta-caratteri, caratteri cioè che assumono particolari significati e che ci permettono
di delineare al meglio, anche se in un modo che può sembrare abbastanza complesso ad un primo acchito, la struttura della stringa
che vogliamo cercare:
\
è il carattere di escape che, prefisso ad un meta-carattere, indica di considerarlo come un carattere "normale" mentre
se anteposto ad alcuni caratteri identifica tipi di caratteri generici
^
indica l'inizio della stringa
$
indica la fine della stringa
.
ha valore di qualsiasi carattere
?
indica di considerare 0 o 1 del meta-carattere o gruppo di questi che segue
*
indica di considerare 0 o più dei meta-carattere o gruppo di questi che segue
+
indica di considerare 1 o più dei meta-carattere o gruppo di questi che segue
importanza particolare ha l'utilizzo di parentesi
( e )
racchiudono un sotto-pattern
[ e ]
racchiudono una definizione di un insieme di caratteri
{ e }
racchiudono la definizione di un quantificatore in forma di intervallo di valori (min/max)
Giusto per complicare un po all'interno delle parentesi quadre alcuni di questi assumono un significato diverso:
^
se è il primo carattere indica la negazione della classe
-
indica un range di caratteri
|
indica una alternativa
I modificatori più utilizzati sono:
i
indica che le lettere del pattern saranno confrontate in modo case-insensitive
m
indica di considerare il pattern sempre è comunque come una sola riga,senza quindi "a capo"
La potenza delle RE nella gestione di testi è enorme, molti diranno "come la loro complessità", in questo ambito però
ci limitiamo a mostrare le funzioni che ci permettono di sfruttare le RE in PHP, contestualmente verranno dati alcuni esempi di semplici RE:
preg_match($pattern, $stringa, $matches)
Riferimenti, esempi e teoria sulle funzioni che PHP fornisce