logo

Funcția PHP preg_match().

Funcția preg_match() este o funcție încorporată a PHP care realizează o potrivire a expresiei regulate. Această funcție caută în șir model și returnează adevărat dacă modelul există, altfel returnează false.

În general, căutarea începe de la începutul parametrului șir $subject. Parametrul opțional $offset este utilizat pentru a începe căutarea din poziția specificată.

Sintaxă

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

Notă: $offset este un parametru opțional care specifică poziția de unde se începe căutarea.

Parametrii

Această funcție acceptă cinci parametri, care sunt descriși mai jos:

model

Este un parametru de tip șir. Acest parametru păstrează modelul de căutat ca șir.

subiect

Acest parametru deține șirul de intrare în care căutăm modelul.

chibrituri

Dacă este furnizat parametrul de potrivire, acesta va conține rezultatele căutării.

meciuri[0] - Va reține textul, care se potrivește cu modelul complet.

meciuri[1] - Va conține textul, care s-a potrivit cu primul submodel capturat între paranteze și așa mai departe.

steaguri

c matrice de șiruri

Steagurile pot avea următoarele steaguri prezentate mai jos:

    PREG_OFFSET_CAPTURE:Dacă acest flag este transmis în preg_match(), pentru fiecare potrivire care apare, va reveni și offset-ul șirului anexat.PREG_UNMATCHED_AS_NULL:Dacă acest flag este trecut în preg_match(), submodelul nepotrivit va fi raportat ca NULL, altfel ele vor fi raportate ca șir gol.

decalaj

În mod implicit, căutarea începe de la începutul parametrului $subject. Parametrul offset este utilizat pentru a specifica locul de unde va începe căutarea. Este un parametru opțional.

plutind css

Tip de returnare

Funcția preg_match() returnează true dacă modelul se potrivește altfel, returnează false.

Notă: Dacă doriți doar să verificați dacă un șir este conținut într-un alt șir, nu utilizați funcția preg_match(). Utilizați funcția strpos() deoarece va fi mai rapidă.

Exemple

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

Ieșire:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Putem vedea rezultatul de mai sus așa cum este prezentat mai jos pentru a o înțelege mai bine.

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Exemple: căutare fără majuscule

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Ieșire:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

Exemple: prin utilizarea limitei cuvântului ()

 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

Ieșire:

 A match was found. A match was not found. 

Exemple: scoateți numele de domeniu din URL

 

Ieșire:

 Domain name is: javatpoint.com 

Sintaxa Regex (Expresie regulată).

[abc] Se potrivește cu un singur caracter - a, b sau c
[^abc] Se potrivește cu orice caracter, cu excepția a, b sau c
[a-z] Se potrivește cu orice caracter individual din intervalul a-z
[a-zA-Z] Orice caracter unic din intervalul a-z sau A-Z
^ Începutul liniei
$ Sfârșitul liniei
A Începutul șirului
Cu Sfârșitul șirului
. Orice personaj
s Orice caracter alb
S Orice caracter fără spații albe
d Orice cifră
D Orice non-cifră
În Orice caracter de cuvânt (litera, cifra, caracterul de subliniere)
ÎN Orice caracter non-cuvânt
 Verificator de limite de cuvinte
/?/ Începe și termină expresia regulată
(?) Capturați tot ce este inclus în paranteză ()
(a|b) a sau b
A? Zero sau unul dintre a
A* Zero sau mai multe dintre a
a+ Una sau mai multe dintre a
a{3} Exact 3 din a
a{3,} 3 sau mai multe din a
a{3,6} Între 3 și 6 din a
i Verificare fără majuscule
m Faceți potrivire cu punctele noi
X Ignorați spațiile în regex

Explicarea modelului „[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]”

    ''/?/''Afișează începutul și sfârșitul expresiei regulate.„[^[a-zA-Z0-9._-]”Se potrivește cu orice litere mari sau mici, numere între 0 și 9, punct, subliniere sau liniuțe.„+@[a-zA-Z0-9-]”Se potrivește cu simbolul @ urmat de litere mari sau mici, numere între 0 și 9 sau liniuțe.„+.[a-zA-Z.]{2,5}$/”Punctul este eliminat prin utilizarea barei oblice inverse și apoi se potrivește cu orice litere mici sau mari cu o lungime între 2 și 5 la sfârșitul șirului.