Espressioni regolari
Alcune persone, quando affrontano un problema, pensano: “Lo so, finirò per usare le espressioni regolari”. A questo punto, hanno due problemi.
-- Jamie Zawinski, in comp.lang.emacs
Le
espressioni regolari sono una combinazione di caratteri che identifica un testo con determinate caratteristiche.
L'uso principale consiste nel trovare o sostituire del testo con determinate caratteristiche, e rappresentano una sintetica via di mezzo tra un concetto mentale e un frammento di codice.
Esempi
Il seguente esempio verifica se una stringa è un nome (e cognome) valido (il codice è in
php):
function check($testo) {
// controlla che ci siano solo lettere o spazi (tramite codici ASCII)
for($i =
0;
$i <
strlen($testo) -
1;
$i++
)
if(!
(ord($testo[$i]) >=
65 &&
ord($testo[$i]) <=
90) && !
(ord($testo[$i]) >=
97 &&
ord($testo[$i]) <=
122) &&
$testo[$i] !=
" ") return false;
// controlla che la prima lettera sia maiuscola
// controlla che le restanti lettere siano tutte minuscole o spazi
for($i =
1;
$i <
strlen($testo) -
1;
$i++
)
if($testo[$i] !=
strtolower($testo[$i]) &&
$testo[$i] !=
" ") return false;
return true;
}
if(check
("Mario Rossi")) echo "Nome valido";
Ecco l'espressione regolare corrispondente:
if(ereg("([A-Z][a-z]*[ ]+){1,}[A-Z]",
"Mario Rossi")) echo "Nome valido";
Difficoltà
Imparare le espressioni regolari non è semplicissimo, in quanto stringhe molto simili possono avere significati completamente diversi.
L'unico modo per imparare a utilizzare le regex è di fare molto esercizio, possibilmente guidato.
Imparare a usare le regex
Esempi di regex
Indirizzo di email
Riferimenti
http://www.regular-expressions.info∞
Categories
Espressioni Regolari
Non ci sono commenti. [Aggiungere un commento]