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:
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] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Mes galime pamatyti aukščiau pateiktą išvestį, kaip pateikta toliau, kad ją geriau suprastume.
aštrus kampas
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 ) )
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>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Išvestis:
Pattern matched in string. Array ( [0] => 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>'; } 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.'; } ?>
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 |