Expresii regulate în php

Expresiile regulate vă permit să găsiți în șir secvențele corespunzătoare modelului. De exemplu, șablonul "Vasya (. *) Pupkin" va găsi secvența atunci când între cuvintele lui Vasya și Pupkin va fi orice număr de simboluri. Dacă este necesar să găsim șase cifre, atunci vom scrie "[0-9]" (dacă, de exemplu, șase până la opt cifre, apoi "[0-9]"). Aici sunt lucruri precum un pointer la un set de caractere și un pointer la numărul necesar:

În loc de un set de simboluri, poate fi indicată desemnarea oricărui simbol - o perioadă, poate fi specificat un set specific de simboluri (secvențele "0-9" menționate sunt susținute). Pot fi specificate "altele decât acest set de caractere".

Indicatorul pentru numărul de caractere din documentația oficială pentru php se numește "cuantificator". Termenul este convenabil și nu poartă nici un zvon. Astfel, cuantificatorul poate avea atât o anumită valoare - fie una fixă ​​( „“) sau ca un interval numeric ( „“) și abstract „orice număr, inclusiv 0“ ( „*“), „orice întreg pozitiv "- de la 1 la infinit (" + ":" document [0-9] +. txt ")," 0 sau 1 "("? "). Implicit, cuantificatorul pentru un anumit set de caractere este unul ("document [0-9] .txt").

Pentru o căutare mai flexibilă a combinațiilor, aceste pachete de "seturi de simboluri - cuantificatori" pot fi combinate în metastructuri.

Ca orice instrument flexibil, expresiile regulate sunt flexibile, dar nu absolut: zona de aplicare a acestora este limitată. De exemplu, dacă trebuie să înlocuiți o linie fixă ​​în text cu alta, repetată, utilizați str_replace. Dezvoltatorii php încearcă să nu folosească de dragul acestei funcții complexe ereg_replace sau preg_replace, deoarece atunci când sună, există un proces de interpretare a liniei, iar acest lucru consumă în mod serios resursele sistemului. Din păcate, aceasta este o rake preferată pentru programatori începători php.

Utilizați funcții de exprimare regulată numai dacă nu știți exact ce "acolo" este un șir. Din exemple: codul de căutare. în care din șirul de căutare se taie simbolurile de serviciu și cuvintele scurte și se taie spații suplimentare (sau mai degrabă, toate spațiile sunt comprimate: "+" este înlocuită cu un spațiu). Cu ajutorul acestor funcții, verifică e-mailul utilizatorului care își lasă feedbackul. O mulțime de lucruri utile pot fi făcute, dar este important să rețineți: expresiile regulate nu sunt atotputernice. De exemplu, este mai bine să nu faceți o înlocuire complexă într-un text mare. La urma urmei, de exemplu, combinația "(. *)" În planul de program înseamnă căutarea tuturor caracterelor textului. Dar, în cazul în care modelul nu este legat la începutul sau la sfârșitul unei linii, apoi șablonul „muta“, programul prin text, și se transformă un bust dublu, sau mai degrabă bustul în pătrat. Nu este greu de ghicit că o combinație mai mare "(. *)" Înseamnă a busta într-un cub și așa mai departe. Ridicați la gradul al treilea, să zicem, 5 kilobytes de text. Se estimează 125 000 000 000 (cu cuvinte: o sută douăzeci și cinci de miliarde de operațiuni). Desigur, dacă vă apropiați strict, nu vor exista atât de multe operațiuni, dar vor fi de patru sau opt ori mai puțin, dar ordinea cifrelor este importantă.

Set de caractere

În acest moment poate fi una dintre opțiunile enumerate, de exemplu: (Vasya | Petya | Masha). Dacă nu doriți ca aceasta să fie în eșantion, utilizați (.)

Nu utilizați clasa de simboluri pentru a desemna numai una (în loc de "[] +" va coborî complet "+"). Nu scrieți în clasa de caractere a punctului # 151; este orice caracter, atunci celelalte simboluri din clasă sunt doar inutile (iar în clasa negativă, toate personajele vor fi respinse).

cuantificator

Un cuantificator poate specifica atât o valoare specifică, cât și limite. Dacă numărul celor specificate se încadrează în limitele cuantificatorului, se consideră că fragmentul expresiei coincide cu șirul parsizat. sintaxa:

Dacă trebuie doar să specificați minimul necesar și nu există nici un maxim, trebuie doar să introduceți o virgulă și să nu scrieți al doilea număr: "" ("minimum 5"). Pentru cei mai frecvent utilizați cuantificatori există note notate:

"asterisc" sau un semn de multiplicare

Articole similare