Expresii regulate pentru php - învățați să le compuneți cu ușurință!
Mai devreme sau mai târziu, fiecare dezvoltator web se confruntă cu sarcina de a introduce expresii regulate în codul său. Mulți oameni cred că este incredibil de greu să le compună și numai cei selectați o pot face. De fapt, nu este așa. Și astăzi vă voi arăta cum să faceți expresii regulate.
Dar pentru a începe o mică informație generală. Ce sunt expresii regulate și pentru ce sunt acestea?
Expresiile regulate reprezintă un limbaj formal pentru localizarea și manipularea substringurilor în text, pe baza utilizării de caractere cu repere. De fapt, acesta este un șir de șir (model englezesc, în limba rusă, adesea numit "șablon", "mască"), constând din caractere și metacaractere și specificând regula căutării.
Extras din Wikipedia
Cu alte cuvinte, expresia regulată înseamnă o secvență obișnuită de caractere sau numere sau un alt șablon, adică expresia pe care doriți să o găsiți.
Expresiile regulate sunt cel mai adesea folosite pentru a găsi și a înlocui textul, cu ajutorul cărora puteți verifica corectitudinea informațiilor introduse de utilizator, pentru a evita introducerea informațiilor sau informațiilor incorecte într-un format necorespunzător.
Principiul muncii lor este destul de simplu.
Mai întâi, specificați șirul în care va fi efectuată căutarea. În al doilea rând, este creat un șablon al acestei căutări.
Și dacă știți cum să creați corect un șablon pentru o anumită sarcină, atunci cu expresii regulate găsiți aproape orice.
Vom avea grijă de toate în practică și vom examina rezultatele.
Creez un nou fișier php pentru a testa tot codul. Puteți face același lucru. Creați un fișier și scrieți-l între etichetele de deschidere și închidere a etichetelor pentru codul php:
Porniți imediat fișierul din browser (asigurați-vă că Denver funcționează). Dacă nu știți, atunci pentru a porni fișierul, trebuie să setați localhost / numele folderului în care fișierul / fișierul nume.php este localizat la linia de comandă a browserului.
Deci, să începem de la început. Mai intai, voi scrie un text care va sicaneaza potrivirea si va pune intr-o variabila (bineinteles, textul ar trebui sa fie inclus in ghilimele).
Iată un astfel de text. Acum trebuie să creăm un șablon pentru expresia noastră regulată.
Să mergem de la simplu la complex. Mai întâi, căutați cuvântul "Internet" în text, aflați de câte ori acesta apare și afișați-l.
Pentru a face acest lucru, să facem un simplu model de expresie regulată și să îl plasăm într-o variabilă.
În primul rând, o expresie regulată este un șir simplu și ar trebui citată.
În plus, expresiile regulate încep și se termină cu un slash direct. Ce este între tăieturi este esența expresiei regulate.
Deci, să introducem în codul nostru cel mai simplu model al unei expresii regulate introduse într-o variabilă:
Dar acestea sunt doar variabile. Și acum cel mai important lucru!
Să scriem o funcție care caută potrivirile în textul nostru în expresia noastră regulată.
În PHP, pentru aceasta este folosită o funcție specială numită "preg_match".
Funcția preg_match și funcția preg_match_all.
Doi parametri sunt transmiși la funcția preg_match: o expresie regulată și șirul în care trebuie căutat.
Această funcție poate reveni la valori: fie 0 (dacă nu există potriviri), fie 1 (dacă se găsește primul meci și apoi oprește pur și simplu căutarea).
Dacă avem nevoie de toate potrivirile cu șablonul, atunci trebuie să folosim funcția preg_match_all.
În funcția preg_match_all trecem 3 parametri: expresie regulată; linia în care căutăm; O variabilă în care să se plaseze rezultatele căutării.
Deoarece avem nevoie de toate potrivirile din text, vom folosi funcția preg_match_all. Prin urmare, codul nostru va fi mărit cu următoarea linie:
$ result = preg_match_all ($ regex, $ string_search, $ out);
Rămâne să afișați rezultatul pe ecran. Vă sugerez mai întâi să deduceți numărul de meciuri și apoi acele coincidențe în sine în buzunarul for (poate că în practică nu trebuie să scoateți rezultatele, dar în această lecție o fac pentru claritate).
Adăugați următoarele linii în codul nostru:
echo $ rezultat. "
"pentru ($ i = 0; $ i
Acum, dacă verificați pagina în browser, vom vedea următorul rezultat:
Dacă trebuie să găsim o valoare sau altul, de exemplu, dorim să găsim cuvântul "internet" sau "site", apoi între valorile de căutare din șablon trebuie să introduceți un simbol special "|". În acest caz, expresia regulată va arăta astfel:
Și rezultatul pe ecran, vom vedea acest lucru:
Îți sugerez să începi la sfârșit.
1. În primul rând, să spunem șablonului nostru să imprime totul de la .ru sau .com.
Voi face o mică digresiune și spun că punctul (.) În expresii regulate înseamnă - "orice caracter", deci punctul trebuie să fie scapat. Putem face acest lucru cu un backslash (\). Cu simbolul sau (|), sunteți deja familiarizați.
În timp ce se dovedește astfel:
2. Acum vom indica faptul că înainte de simbolurile .ru sau .com ale alfabetului latin de la a la z pot sta, de asemenea, numerele de la 0 la 9 și semnul "-". Acesta va arăta astfel: [a-z0-9-]. Și trebuie să specificăm un cuantificator (cu cuvinte simple: câte simboluri pot fi). De exemplu, dacă scriu aceasta: - va însemna 2 sau mai multe.
Rămâne să combinăm toate acestea. Apropo, înainte de aceasta, trebuie să includeți paranteza deja existentă (\ .ru) | (\. Com). Dacă nu facem acest lucru, atunci tot ceea ce ne nasmesem înainte se va aplica numai în .ru.
Combinând toate cele de mai sus, obținem următorul cod:
Și pe ecran vom vedea următoarele:
Ce trebuie să faci pentru asta?
Acum, cred că ți-a devenit clar cum să compun o expresie atât de regulată. Desigur, nu este universal, tocmai am venit cu un exemplu. Sunt sigur că dacă stați și gândiți cu atenție, puteți să o îmbunătățiți.
În general, elaborarea unei expresii regulate este similară cu compunerea unei ecuații.
Să ne uităm la un alt exemplu simplu.
Vom găsi toate referințele la anii din textul nostru.
Este foarte simplu să faceți acest lucru.
Anul ar trebui să fie format din numere. Pentru aceasta vom folosi clasa de caractere (\ d). Această clasă de simboluri reprezintă "Digit". În plus, anul ar trebui să fie format din patru cifre, iar pentru aceasta vom folosi un cuantificator.
În final, expresia regulată va arăta astfel:
Și, ca rezultat, obținem rezultatele tuturor anilor care apar în text (le avem în textul doi):
În cele din urmă, vreau să vă ofer o resursă foarte bună care vă va ajuta să studiați expresiile regulate. Se numește regexlib.com.
Are un tester de expresii regulate. Asta înseamnă că puteți scrie expresii regulate și puteți testa munca lor direct în această resursă. Pentru aceasta, mergeți la fila "Redex Tester", în "Sursa" trebuie să scrieți textul în care va fi efectuată căutarea. Și în câmpul "Expresie regulată" trebuie să scrieți expresia regulată. Rețineți că atunci când scrieți o expresie regulată, nu este necesar să introduceți "//" în câmp. Scrieți expresia regulată imediat. După scriere, faceți clic pe butonul "Trimiteți" și vedeți rezultatele. Este foarte convenabil!
Pentru a înțelege că a fost mai convenabil, la sfârșitul acestui articol am atașat o tabelă de fișiere cu toate simbolurile, cuantificatorii și intervalele speciale. Puteți să o imprimați și să o păstrați întotdeauna la îndemână, atunci nu va trebui să căutați ceva care să denote fiecare caracter specific în expresia regulată.
Această placă mă ajută foarte mult, cred că te va ajuta.
De fapt, puteți scrie multe despre expresiile obișnuite, dar vreau să spun că pentru a afla cum să le scrieți rapid și eficient, trebuie să practicați. Practica! Este atât de frumos când rulați scenariul și funcționează așa cum ar trebui!
Mult noroc! Și te văd din nou!
buen articulo, gracias
Și, apropo, pare să aveți o mulțime de legături externe (chiar și pentru 20 de pagini). Vă sfătuiesc să le opriți de indexare (cel puțin în cea mai mare parte).
Vă mulțumim foarte descompus
Vă mulțumim pentru un articol simplu și bun