Regularni izraz je določen vzorec, s katerim se lahko ujema, išče in nadomešča kateri koli niz v besedilnih podatkih. Je zmogljiva lastnost katerega koli programskega jezika. Uporablja se predvsem za izvajanje različnih vrst preverjanj obrazcev, kot so preverjanje e-pošte, preverjanje oblike telefona, preverjanje polj uporabniškega imena in gesla prijavnega obrazca itd. Vsako določeno vsebino besedila je mogoče iskati in zamenjati z vzorcem regularnega izraza. Imenuje se tudi regularni izraz ali RegExp. Za določitev vzorca regularnih izrazov se uporabljajo različne vrste simbolov.
V regularnem izrazu v PHP obstaja veliko vgrajenih funkcij. funkcija preg_match () je ena izmed njih. Ta funkcija se uporablja za ujemanje določenega vzorca v podatkih niza. Kako je mogoče funkcijo preg_match () uporabiti v PHP za izvajanje različnih nalog, je razloženo v tej vadnici.
Sintaksa:
Int ali false preg_match (niz $ vzorec, niz $ predmet [, matrika & $ ujemanja = null [, int $ flags = 0 [, int $ offset = 0]]])Ta funkcija lahko sprejme pet argumentov. Prvi argument, $ vzorec, je obvezen, kar določa vzorec za ujemanje. Drugi argument, $ tema, je obvezen in vsebuje nizne podatke, v katerih bo uporabljen vzorec. Tretji argument, $ ujemanja, ni obvezen in vrne matriko, ki temelji na ujemanju. Četrti argument, $ zastavice, je neobvezno, ki vsebuje različne vrste vrednosti zastav glede na ujemanje. Peti argument, $ offset, je neobvezna in se lahko uporablja za določanje začetnega položaja iskanja.
Primer 1: Vzorec ujemajte z velikimi in malimi črkami
Naslednji primer prikazuje uporabo funkcije preg_match () za ujemanje niza na velike in male črke. Ustvarite datoteko PHP z naslednjim skriptom.
Tu se za uporabo v treh funkcijah preg_match () uporabljajo trije vzorci. Prvi vzorec, '/ Všeč mi je /', se uporablja za ujemanje niza na velike in male črke. Drugi vzorec, '/ like /', se uporablja za ujemanje niza na velike in male črke. Tretji vzorec, "Všeč mi je / i", se uporablja za ujemanje niza na velike in male črke. vzorec iskanja () funkcija je v skriptu definirana za uporabo funkcije preg_match () za ujemanje in natisne sporočilo na podlagi vrnjene vrednosti te funkcije.
// Določite besedilo$ text = "Všeč mi je PHP. Všeč mi je tudi JavaScript.";
// Določimo tri vrste vzorcev
$ pattern1 = '/ Všeč mi je /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Všeč mi je / i';
// Določimo funkcijo za iskanje vzorca v besedilu
vzorec iskanja funkcije ($ vzorec, $ niz)
če (preg_match ($ vzorec, $ niz))
echo "Rezultat iskanja: Najdeno je ujemanje za vzorec - $ vzorec
";
drugače
echo "Rezultat iskanja: Za vzorec ni mogoče najti ujemanja - $ vzorec
";
// Natisni izvirno besedilo
echo "Izvirno besedilo je: $ besedilo
";
// Trikrat pokličemo funkcijo za tri vzorce
vzorec iskanja ($ vzorec1, $ besedilo);
vzorec iskanja ($ vzorec2, $ besedilo);
vzorec iskanja ($ vzorec3, $ besedilo);
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika. Prva vrstica prikazuje besedilo, kjer so iskali vzorce. Druga vrstica prikazuje rezultat prvega vzorca. Tretja vrstica prikazuje rezultat drugega vzorca. V četrti vrstici je prikazan rezultat tretjega vzorca.
2. primer: potrdite URL
Naslednji primer prikazuje način preverjanja naslova URL s funkcijo preg_match (). Ustvarite datoteko PHP z naslednjim skriptom.
Vrednost URL je dodeljena v spremenljivki $ url za testiranje. '@ ^ (?: https: //)?([^ /] +) @ i 'niz se uporablja kot vzorec v funkciji preg_match () za preverjanje, ali je naslov URL veljaven ali ne. Če je veljavno, se natisneta ime gostitelja in ime domene, sicer pa se natisne sporočilo o napaki.
// Določite URL$ url = "https: // www.linuxhint.com ";
// Določimo vzorec za preverjanje URL-ja
$ vzorec = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Preverite, ali je URL veljaven ali ne
if (preg_match ($ vzorec, $ url, $ ujemanja1))
// Natisnite sporočilo o uspehu
echo "URL je veljaven.
";
// Natisne polje, ki vsebuje vrednosti ujemanja
echo "Vrednosti matrike so:";
print_r ($ ujema1);
// Pridobivanje in tiskanje vrednosti gostitelja
$ host = $ match1 [1];
odmev "
Ime gostitelja je: $ host ";
// Iskanje imena domene po vrednosti gostitelja
preg_match ('/ [^.] + \.[^.] + $ / ', $ gostitelj, $ ujemanja2);
odmev "
Ime domene je: $ matches2 [0] ";
drugače
// Natisnite sporočilo o napaki
echo "Neveljaven URL.";
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika. Navedeni URL v skriptu je veljaven. Torej, rezultat prikazuje vrednosti $ ujemanja, ime gostitelja URL-ja in ime domene URL-ja.
Primer 3: Vzorec iskanja z vrednostmi zastavice in odmika
Naslednji primer prikazuje uporabo vrednosti zastave in odmika v funkciji preg_match (). Ustvarite datoteko PHP z naslednjim skriptom.
V skriptu se za tri vrste ujemanja uporabljajo trije vzorci. V prvi funkciji preg_match () se kot vzorec in vrednost zastave uporablja '/ (bangla) (desh) /', uporabi se PREG_OFFSET_CAPTURE. Vrednosti $ ujemanja spremenljivka se bo natisnila na podlagi rezultata prve funkcije preg_match (). V drugi funkciji preg_match () se kot vzorec in vrednost zastave uporablja '/ (bangla) (veselo) * (desh) / i', uporablja se PREG_UNMATCHED_AS_NULL. Če se kateri koli del vzorca ne ujema, bo v matriki shranjena NULL vrednost. Vrednosti $ ujemanja spremenljivka se bo natisnila na podlagi izhoda druge funkcije preg_match (). V tretji funkciji preg_match () se kot vzorec uporabi '/ glad /', vrednost zastavice, PREG_OFFSET_CAPTURE in 3 kot vrednost odmika. Vrednosti $ ujemanja spremenljivka bo natisnjena na podlagi izhoda tretje funkcije preg_match ().
// Določimo besedilno vrednost$ text = "Bangladeš";
// Določimo tri vrste vzorcev
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (veselo) * (desh) / i';
$ pattern3 = '/ vesel /';
// Uporaba zastavice PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ matches, PREG_OFFSET_CAPTURE);
odmev "
";
print_r ($ ujemanja);
odmev "
";
// Uporaba zastavice PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ matches, PREG_UNMATCHED_AS_NULL);
odmev "
";
print_r ($ ujemanja);
odmev "
";
// Uporaba oznake PREG_OFFSET_CAPTURE in odmika
preg_match ($ pattern3, $ text, $ matches, PREG_OFFSET_CAPTURE, 3);
odmev "
";";
print_r ($ ujemanja);
odmev "
?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika.
Zaključek
Uporabe funkcije preg_match () so bile razložene v tej vadnici z več primeri. Tu je bila prikazana tudi uporaba različnih argumentov te funkcije. Bralci bodo lahko po branju te vadnice to funkcijo pravilno uporabljali v svojem skriptu.