Expresiile regulate în PHP

Expresiile regulate în PHP

Sa întâmplat că ultima dată, am de multe ori să se ocupe de problema găsirii unui subșir în text, iar acest subșir nu poate avea un set fix de simboluri. La nivelul de bază, care lucrează cu un text, puteți utiliza funcția standard de PHP:

strpos () - Returnează un subșir în șir.
substr () -Returns predeterminate porțiune de linie.
strcmp () - Compară două șiruri.
str_replace () - Înlocuiți toate aparițiile șirului într-un subșir cu un alt subșir.
exploda () - împarte șirul în matrice pentru un anumit separator
strip_tags () - Elimină linia toate etichetele HTML.
strtolower () - traducere în litere mici.
strtoupper () - traducere în majuscule.
tăiați () - șterge ( »«, \ n, \ r, \ t) caractere la începutul și sfârșitul liniei.
Htmlspecialchars () - Înlocuiește caractere speciale pentru echivalentele lor HTML.
convert_cyr_string () - Convertește un text românesc dintr-o codificare la alta.

În cele mai multe cazuri, această listă se poate renunța, deși nu toate funcțiile necesare. Probabil că fiecare nou programator vine un moment în care trebuie să se confrunte cu studiul de expresii regulate.

Expresia regulată - o limbă de căutare formală și manipularea subșirul în text, bazat pe utilizarea meta-caractere.

Pur și simplu pune, expresia regulată este un set de simboluri care descriu căutarea regula subșir.
Pentru a face mai clar, da imediat un exemplu simplu de expresie regulată în acțiune.

Să presupunem că avem un șir de caractere:

Carl Clara furat corali și Clara Carl a furat un clarinet.

Dacă se aplică acest faimos răpăit expresie regulată a formei:

atunci vom obține trei cuvinte potrivite acestui model: „Clara“. "Clara". și "clarinet".

La prima vedere, înregistrarea expresie regulată este descurajatoare, dar cum se spune: „Nu este atât de diavol ca el este pictat!“.

Acum voi explica formarea modelului de principiul expresiei regulate.

Primul lucru pe care trebuie să înțeleagă că nu toate personajele din acest set sunt descrie în esență șablonul! Priviți cu atenție la următoarele expresii regulate:

acestea sunt exact aceeași lucrare, singura diferență în cele două simboluri care servesc pentru a separa șablonul direct de modificatorii suplimentare de birou. La locul separatorului poate fi orice caracter. dar este necesar ca a fost la începutul și la sfârșitul șablonului.

Ultimul caracter este în valoare de litera latină I în expresia noastră regulată, prezența, care indică faptul că modelul este insensibil la caz. Dacă eliminați acest modificator, ca urmare a exemplului de mai sus nu ar fi de trei cuvinte, ci două: „Clara“ și „Clara“.

Aruncarea expresiei delimitatori și modificatori serviciul nostru, vom obține model pură expresie regulată:

Domeniul de aplicare al acestui șablon va include toate subșirul în textul care corespund următoarelor reguli:

  1. Subșir începe cu secvența de litere "K", "L", "a", "p".
  2. Subșir se termină cu un spațiu \ s.
  3. Între secvența „K“, „L“, „o“, „p“ și un spațiu \ poate satisface oricare dintre personajele lui. *. deoarece acestea nu pot fi deloc.

Cele de mai sus exemplu, doar o mică picătură într-o mare de posibilități de expresii regulate.

A venit timpul pentru a trece la aplicarea practică a cunoștințelor dobândite. Luați în considerare câteva exemple utile de expresii regulate în PHP. dar mai întâi câteva cuvinte despre caracteristicile și preg_match_all preg_match. utilizate în PHP atunci când se ocupă cu expresii regulate.

Funcția preg_match este convenabil de a folosi atunci când aveți nevoie pentru a găsi un singur cuvânt în text cu aceste caractere, sau pur și simplu pentru a verifica secvența necesară.

Dacă vă căutați pentru un set de subșiruri de text, atunci este necesar să se utilizeze preg_match_all. returnează o matrice cu toate valorile găsite.

Pentru a testa în exemplul de acțiune a unei expresii regulate cu răpăitul, copiați următoarea funcție și apelați-l.

funcţia TestRegularFirst # 40; # 41; # 123;
$ Text = 'Carl Clara furat corali și Clara Carl a furat clarinet.' ;
echo 'exemplu: “. htmlspecialchars # 40; $ Text # 41; ;
preg_match_all # 40; "/(Klar.*?)\s/i". $ Text. $ rezultat # 41; ;
echo '
rezultat:

“. var_export # 40; $ rezultat # 91; 1 # 93;. adevărat # 41;. '
„;
# 125;
TestRegularFirst # 40; # 41; ;

Ca rezultat al funcției trebuie să returneze o matrice:

O secvență de caractere incluse între etichetele.

Sper tabelele de mai jos vă va ajuta să se ocupe rapid cu întrebarea: ce este expresia regulată în PHP? Nu ar trebui să întârzie procesul de familiarizare cu acest mecanism puternic în dulap, pentru că cu cât mai repede veți obține un mâner în sezonul regulat, cu atât mai puțin va lăsa timp pentru a născoci algoritmi complexe de procesare a textului.

Exemplu expresii regulate în php

funcţia verifica_email # 40; $ e-mail # 41; # 123;
dacă # 40;. preg_match # 40; „/ ^ (: [A-Z0-9] + (: [. -_] [A-Z0-9] +) @ [a-Z0-9 _.-] + (: ??? \.? [a-Z0-9] +)? \. [az]) $ / i“. tunde # 40; $ e-mail # 41; # 41; # 41;
# 123;
return false;
# 125;
altfel return true;
# 125;