logo

PHP preg_match() funkcija

Funkcija preg_match() yra įtaisyta PHP funkcija, kuri atlieka reguliariųjų reiškinių atitiktį. Ši funkcija ieško eilutėje šablono ir grąžina „true“, jei modelis egzistuoja, priešingu atveju grąžina „false“.

Paprastai paieška pradedama nuo $subject eilutės parametro pradžios. Pasirinktinis parametras $offset naudojamas paieškai pradėti nuo nurodytos padėties.

Sintaksė

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

Pastaba: $offset yra pasirenkamas parametras, nurodantis vietą, nuo kurios pradėti paiešką.

Parametrai

Ši funkcija priima penkis parametrus, kurie aprašyti toliau:

modelis

Tai yra eilutės tipo parametras. Šis parametras išlaiko šabloną, kurį reikia ieškoti kaip eilutę.

tema

Šiame parametre yra įvesties eilutė, kurioje ieškome šablono.

degtukai

Jei bus pateiktas atitikties parametras, jame bus pateikti paieškos rezultatai.

rungtynės[0] - Jame bus tekstas, atitinkantis visą modelį.

rungtynės[1] - Jame bus tekstas, kuris atitiko pirmąjį užfiksuotą skliausteliuose įrašytą popiešinį ir pan.

vėliavos

onclick js

Vėliavos gali turėti toliau nurodytas vėliavas:

    PREG_OFFSET_CAPTURE:Jei ši vėliavėlė perduodama preg_match(), kiekvienos įvykusios atitikties atveju taip pat bus grąžintas papildomos eilutės poslinkis.PREG_UNMATCHED_AS_NULL:Jei ši vėliavėlė perduodama preg_match(), nesutampantys pogrupiai bus pranešami kaip NULL, kitu atveju jie bus pranešami kaip tuščia eilutė.

kompensuoti

Pagal numatytuosius nustatymus paieška pradedama nuo parametro $subject pradžios. Poslinkio parametras naudojamas norint nurodyti vietą, nuo kurios bus pradėta paieška. Tai neprivalomas parametras.

Grąžinimo tipas

Funkcija preg_match() grąžina true, jei šablonas sutampa kitaip, ji grąžina false.

Pastaba: jei norite tik patikrinti, ar viena eilutė yra kitoje eilutėje, nenaudokite funkcijos preg_match(). Naudokite strpos() funkciją, nes ji bus greitesnė.

Pavyzdžiai

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

Išvestis:

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

Mes galime pamatyti aukščiau pateiktą išvestį, kaip pateikta toliau, kad ją geriau suprastume.

aštrus kampas
 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 ) ) 

Pavyzdžiai: paieška neskiriant didžiųjų ir mažųjų raidžių

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

Išvestis:

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

Pavyzdžiai: naudojant žodžio ribą ()

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

Išvestis:

 A match was found. A match was not found. 

Pavyzdžiai: gaukite domeno pavadinimą iš URL

 

Išvestis:

 Domain name is: javatpoint.com 

Regex (Regular Expression) sintaksė

[abc] Atitinka vieną simbolį – a, b arba c
[^abc] Atitinka bet kurį vieną simbolį, išskyrus a, b arba c
[a-z] Atitinka bet kurį vieną simbolį diapazone a–z
[a-zA-Z] Bet koks atskiras simbolis diapazone a–z arba A–Z
^ Linijos pradžia
$ Eilutės pabaiga
A Stygos pradžia
Su Stygos pabaiga
. Bet koks vienas simbolis
s Bet koks tarpo simbolis
S Bet koks ne tarpo simbolis
d Bet koks skaitmuo
D Bet koks neskaitmuo
In Bet koks žodžio simbolis (raidė, skaičius, pabraukimas)
IN Bet koks nežodinis simbolis
 Žodžių ribų tikrintuvas
/?/ Pradeda ir baigia reguliariąją išraišką
(?) Užfiksuokite viską, kas yra skliausteliuose ()
(a|b) a arba b
a? Nulis arba vienas iš a
a* Nulis ar daugiau a
a+ Vienas ar daugiau a
a{3} Lygiai 3 iš a
a{3,} 3 ar daugiau a
a{3,6} Tarp 3 ir 6 val
i Patikrinimas, kuriame nėra didžiųjų ir mažųjų raidžių
m Padarykite tašką, kad jis atitiktų naujas eilutes
x Ignoruoti tarpą reguliariajame reiškinyje

Šablono „[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/] paaiškinimas“

    ''/?/''Tai rodo reguliariosios išraiškos pradžią ir pabaigą.„[^[a-zA-Z0-9._-]“Jis atitinka visas didžiąsias arba mažąsias raides, skaičius nuo 0 iki 9, tašką, apatinį brūkšnį arba brūkšnelį.„+@[a-zA-Z0-9-]“Jis atitinka simbolį @, po kurio yra didžiosios arba mažosios raidės, skaičiai nuo 0 iki 9 arba brūkšneliai.„+.[a-zA-Z.]{2.5}$/“Taškas pašalinamas naudojant pasvirąjį brūkšnį, o tada eilutės pabaigoje atitinka bet kokias mažąsias arba didžiąsias raides, kurių ilgis yra nuo 2 iki 5.