logo

PHP funkcija preg_match().

Funkcija preg_match() je ugrađena funkcija PHP-a koja izvodi podudaranje regularnog izraza. Ova funkcija traži uzorak u nizu i vraća true ako uzorak postoji, inače vraća false.

Općenito, pretraživanje počinje od početka parametra niza $subject. Opcijski parametar $offset koristi se za početak pretraživanja od navedene pozicije.

Sintaksa

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

Napomena: $offset je izborni parametar koji određuje poziciju s koje počinje pretraživanje.

Parametri

Ova funkcija prihvaća pet parametara koji su opisani u nastavku:

uzorak

To je parametar vrste niza. Ovaj parametar sadrži uzorak za pretraživanje kao niz.

subjekt

Ovaj parametar sadrži ulazni niz u kojem tražimo uzorak.

šibice

Ako je naveden parametar podudaranja, sadržavat će rezultate pretraživanja.

odgovara [0] - Sadržat će tekst koji odgovara kompletnom uzorku.

utakmice [1] - Sadržavat će tekst koji se podudara s prvim snimljenim poduzorkom u zagradama, i tako dalje.

zastave

java niz niza

Zastave mogu imati sljedeće zastave navedene u nastavku:

    PREG_OFFSET_CAPTURE:Ako se ova zastavica proslijedi u preg_match(), za svako podudaranje će se također vratiti dodatni pomak niza.PREG_UNMATCHED_AS_NULL:Ako se ova oznaka proslijedi u preg_match(), neupareni poduzorak bit će prijavljen kao NULL, inače će biti prijavljen kao prazan niz.

pomaknuti

Prema zadanim postavkama, pretraga počinje od početka parametra $subject. Parametar offset se koristi za određivanje mjesta gdje će pretraživanje započeti. To je izborni parametar.

Vrsta povrata

Funkcija preg_match() vraća true ako se uzorak podudara, inače vraća false.

Napomena: Ako samo želite provjeriti nalazi li se jedan niz u drugom nizu, nemojte koristiti funkciju preg_match(). Koristite funkciju strpos() jer će biti brža.

Primjeri

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

Izlaz:

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

Možemo vidjeti gornji izlaz kako je dat u nastavku da bismo ga bolje razumjeli.

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

Primjeri: pretraživanje bez obzira na velika i mala slova

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

Izlaz:

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

Primjeri: korištenjem granice riječi ()

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

Izlaz:

 A match was found. A match was not found. 

Primjeri: izvucite naziv domene iz URL-a

 

Izlaz:

 Domain name is: javatpoint.com 

Regex (regularni izraz) sintaksa

[abc] Odgovara jednom znaku - a, b ili c
[^abc] Odgovara bilo kojem pojedinačnom znaku osim a, b ili c
[a-z] Podudara se s bilo kojim pojedinačnim znakom unutar raspona a-z
[a-zA-Z] Bilo koji pojedinačni znak unutar raspona a-z ili A-Z
^ Početak retka
$ Kraj retka
A Početak niza
S Kraj niza
. Bilo koji pojedinačni znak
s Bilo koji razmak
S Bilo koji znak koji nije razmak
d Bilo koja znamenka
D Bilo koja necifra
U Bilo koji znak riječi (slovo, broj, podvlaka)
U Svaki znak koji nije riječ
 Provjera granica riječi
/?/ Započinje i završava regularni izraz
(?) Zabilježite sve što je u zagradi ()
(a|b) a ili b
a? Nula ili jedan od a
a* Nula ili više a
a+ Jedan ili više od a
a{3} Točno 3 od a
a{3,} 3 ili više a
a{3,6} Između 3. i 6. a
ja Provjera bez obzira na velika i mala slova
m Neka se točka podudara s novim redcima
x Ignorirajte razmak u regularnom izrazu

Objašnjavanje uzorka '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Prikazuje početak i kraj regularnog izraza.'[^[a-zA-Z0-9._-]'Odgovara svim velikim ili malim slovima, brojevima između 0 i 9, točki, podvlaci ili crticama.'+@[a-zA-Z0-9-]'Odgovara simbolu @ nakon kojeg slijede velika ili mala slova, brojevi između 0 i 9 ili crtice.'+.[a-zA-Z.]{2,5}$/'Točka se uklanja upotrebom obrnute kose crte, a zatim se podudara s malim ili velikim slovima duljine između 2 i 5 na kraju niza.