Sunday, May 21, 2006

Expresii regulare

Validarea datelor de intrare presupune uneori restrictionarea dupa un tipar: spre exemplu pentru codul numeric personal care trebuie sa aiba un anumit numar de caractere, primul poate lua doar doua valori, urmatoarele 6 contin o data calendaristica.
Pentru verificarea formatului informatiilor de intrare, PHP pune la dispozitie doua seturi de functii ce permit lucrul cu expresii regulare: ereg - ofera functionalitate de baza, in genul traditional al comenzii egrep din UNIX - si setul de functii preg- valabile cu instalarea librariei PCRE si care utilizeaza sintaxa Perl.

exemple:






Utilizarea expresiilor regulare ofera o modalitate comoda de scriere a codului, permitand inlocuirea mai multor linii cu o simpla functie, dar cere insa putin exercitiu si atentie.
Nu exista un tipar unic pentru o restrictionare. Decizia pentru o expresie sau alta trebuie facuta cantarind intre exact si practic, pentru ca utilizarea acestora poate avea efecte in performanta programului.
Exista si programe de asistenta in consturirea expresiilor, un exemplu consacrat fiind RegexBuddy.
Cum expresiile regulare sunt subiect de discutii nu doar in PHP, intrebarea logica este daca exista cumva expresii 'la cheie' spre exemplu pentru validarea unei adrese de email. Raspunsul este nu, nu exista, desi poate fi gasit pe internet un standard scris in 1982 - RFC 822 - care accepta orice adresa valida, e inclus si in RegexBuddy si are mai bine de 6000 de caractere.

1 Comments:

Blogger hbunny said...

Nu e corecta expresia de la URL, eu cel putin primesc erori de sintaxa la felul in care e scrisa aici.

6:36 AM  

Post a Comment

<< Home