logo

Funkcija PHP preg_match().

Funkcija preg_match() je vgrajena funkcija PHP, ki izvaja ujemanje regularnega izraza. Ta funkcija v nizu išče vzorec in vrne true, če vzorec obstaja, sicer vrne false.

Na splošno se iskanje začne od začetka parametra niza $subject. Izbirni parameter $offset se uporablja za začetek iskanja od navedenega položaja.

Sintaksa

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

Opomba: $offset je izbirni parameter, ki določa položaj, od katerega naj se začne iskanje.

Parametri

Ta funkcija sprejme pet parametrov, ki so opisani spodaj:

vzorec

Je nizovni parameter. Ta parameter vsebuje vzorec za iskanje kot niz.

predmet

Ta parameter vsebuje vhodni niz, v katerem iščemo vzorec.

tekme

Če je naveden parameter za ujemanje, bo vseboval rezultate iskanja.

tekme[0] - Vsebovala bo besedilo, ki se ujema s celotnim vzorcem.

tekme [1] - Vseboval bo besedilo, ki se je ujemalo s prvim zajetim podvzorcem v oklepajih itd.

zastave

dodajte v matriko v Javi

Zastavice imajo lahko naslednje zastavice, navedene spodaj:

    PREG_OFFSET_CAPTURE:Če je ta zastavica posredovana v preg_match(), bo za vsako ujemanje vrnjen tudi odmik dodatnega niza.PREG_UNMATCHED_AS_NULL:Če je ta zastavica posredovana v preg_match(), bo neujemajoči se podvzorec sporočen kot NULL, sicer bo sporočen kot prazen niz.

odmik

Privzeto se iskanje začne od začetka parametra $subject. Parameter offset se uporablja za določitev mesta, kjer se bo iskanje začelo. Je neobvezen parameter.

Vrsta povratka

Funkcija preg_match() vrne true, če se vzorec ujema, sicer vrne false.

Opomba: Če želite samo preveriti, ali je en niz vsebovan v drugem nizu, ne uporabite funkcije preg_match(). Uporabite funkcijo strpos(), saj bo hitrejša.

Primeri

 <?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); ?> 

Izhod:

 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 ) ) 

Zgornji rezultat lahko vidimo, kot je podan spodaj, da ga bolje razumemo.

 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 ) ) 

Primeri: iskanje brez upoštevanja velikih in malih črk

 <?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; 

Izhod:

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

Primeri: z uporabo besedne meje ()

 <?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; 

Izhod:

 A match was found. A match was not found. 

Primeri: pridobite ime domene iz URL-ja

 

Izhod:

omrežni sloj v računalniških omrežjih
 Domain name is: javatpoint.com 

Sintaksa regularnega izraza (regularni izraz).

[abc] Ujema se z enim znakom - a, b ali c
[^abc] Ujema se s katerim koli posameznim znakom razen a, b ali c
[a-z] Ujema se s katerim koli posameznim znakom v obsegu a–z
[a-zA-Z] Vsak posamezen znak v obsegu a-z ali A-Z
^ Začetek vrstice
$ Konec vrstice
A Začetek niza
 Konec niza
. Vsak posamezen znak
s Kateri koli presledek
S Kateri koli znak, ki ni presledek
d Katera koli številka
D Vse, kar ni številka
In Kateri koli besedni znak (črka, številka, podčrtaj)
IN Vsak nebesedni znak
 Preverjevalnik meja besed
/?/ Začne in konča regularni izraz
(?) Zajemi vse, kar je v oklepaju ()
(a|b) a ali b
a? Nič ali ena od a
a* Nič ali več a
a+ Eden ali več od a
a{3} Točno 3 od a
a{3,} 3 ali več a
a{3,6} Med 3. in 6. uro a
jaz Preverjanje ne razlikuje med velikimi in malimi črkami
m Naj se pike ujemajo z novo vrstico
x Ignoriraj presledek v regularnem izrazu

Razlaga vzorca '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Prikazuje začetek in konec regularnega izraza.'[^[a-zA-Z0-9._-]'Ujema se z vsemi velikimi ali malimi črkami, številkami od 0 do 9, piko, podčrtajem ali pomišljaji.'+@[a-zA-Z0-9-]'Ujema se s simbolom @, ki mu sledijo velike ali male črke, številke med 0 in 9 ali pomišljaji.'+.[a-zA-Z.]{2,5}$/'Pika se umakne z uporabo poševnice nazaj in se nato ujema z vsemi malimi ali velikimi črkami z dolžino med 2 in 5 na koncu niza.