Le
espressioni regolari sono dei particolari costrutti sintattici che vengono utilizzati per le operazioni di pattern
matching, cioè servono per rilevare la presenza di una sotto-stringa all'interno di una sequenza di caratteri
principale.
Per fare un semplice esempio, un'operazione di pattern matching sulla sequenza di caratteri
"Buon natale Carla" potrebbe essere la ricerca della sotto-stringa "Carla".
Una volta
individuata la sotto-stringa all'interno della sequenza di caratteri potremmo aver concluso le nostre operazioni, oppure,
potremmo avere la necessità di apportare delle modifiche sulla base del risultato ottenuto; potremmo per esempio voler
sostituire all'interno di "Buon natale Carla" la sotto-stringa "Carla" con un'altra, ad esempio
"mamma", in questo caso verrà operata un'azione di pattern sobstitution e il risultato sarà
"Buon Natale mamma"
Le espressioni regolari sono considerate, a torto, uno degli argomenti più complessi
dello scripting PHP. Conosco numerosi sviluppatori veramente validi che non ne vogliono neanche sentir parlare
e preferiscono non utilizzarle quando è possibile.
Nel corso di questa breve serie di articoli scopriremo
che le espressioni regolari sono più semplici da utilizzare di quanto non si creda, inoltre, sono utilissime in quanto
risolvono problematiche che lo sviluppatore si trova ad affrontare quotidanamente.
Perchè creare funzioni
personalizzate per operazioni che PHP ci consente di compiere attraverso costrutti nativi?
Le espressioni
regolari non sono unicamente patrimonio del PHP, chiunque utilizza un PC da qualche tempo ha avuto a che fare con
esse anche senza saperlo; pensate per esempio ai comandi "cerca" e "sostituisci" di cui sono dotati anche
i più semplici editor di testo come il NotePad di Windows o il Gedit di Linux.
Tramite
le espressioni regolari possiamo però eseguire operazioni ancora più raffinate come la validazione di una stringa o la
formattazione di una sequanza di caratteri. Tramite una veloce ricerca sulla Rete troverete certamente numerosi esempi di
espressioni regolari utilizzate per validare indirizzi di posta elettronica, dati numerici o URL.
Uno dei motivi
per cui le espressioni regolari non godono di una buona fama presso coloro che utilizzano lo scripting server side in
PHP sono i tempi di esecuzione ritenuti più lenti rispetto a quelli necessari per altri costrutti; l'eccezione non
è del tutto immotivata, in effetti i processi di ricerca all'interno delle stringhe necessitano l'occupazione di una
certa quantità di memoria da destinare ai risultati delle operazioni svolte.
Avete presente la Clipbord
nei sistemi operativi? Quando tagliamo o copiamo una stringa essa rappresenta lo spazio di memoria in cui viene allocato il
dato su cui abbiamo operato.
In difesa delle espressioni regolari, possiamo però dire che ormai le
macchine server disponibili sul mercato hanno in genere configurazioni talmente avanzate da non risentire gli effetti di
questa allocazione di risorse, inoltre, raramente ci troveremo a dover eseguire matching su sequenze particolarmente
lunghe ed impegnative per il sistema.
Attenzione: questo articolo è stato
concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne
è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.