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:
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] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Možemo vidjeti gornji izlaz kako je dat u nastavku da bismo ga bolje razumjeli.
Array ( [0] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 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>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Izlaz:
Pattern matched in string. Array ( [0] => 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>'; } else { echo 'A match was not found. <br>'; } if (preg_match('/web/i', 'PHP is a website scripting language.')) { echo 'A match was found.'; } else { echo 'A match was not found.'; } ?>
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 |