Funkcia preg_match() je vstavaná funkcia PHP, ktorá vykonáva zhodu regulárneho výrazu. Táto funkcia vyhľadá v reťazci vzor a vráti hodnotu true, ak vzor existuje, inak vráti hodnotu false.
Vo všeobecnosti vyhľadávanie začína od začiatku parametra reťazca $subject. Voliteľný parameter $offset sa používa na spustenie vyhľadávania od zadanej pozície.
Syntax
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
Poznámka: $offset je voliteľný parameter, ktorý určuje pozíciu, z ktorej sa má vyhľadávanie začať.
Parametre
Táto funkcia akceptuje päť parametrov, ktoré sú popísané nižšie:
vzor
Je to parameter typu reťazca. Tento parameter obsahuje vzor na vyhľadávanie ako reťazec.
predmet
Tento parameter obsahuje vstupný reťazec, v ktorom hľadáme vzor.
zápasy
Ak je zadaný parameter zhody, bude obsahovať výsledky vyhľadávania.
zápasy[0] - Bude obsahovať text, ktorý sa zhoduje s úplným vzorom.
zápasy[1] - Bude obsahovať text, ktorý sa zhoduje s prvým zachyteným podvzorom v zátvorkách atď.
vlajky
aké mesiace sú q3
Príznaky môžu mať nasledujúce príznaky uvedené nižšie:
offset
Štandardne sa vyhľadávanie začína od začiatku parametra $subject. Parameter offset sa používa na určenie miesta, kde začne vyhľadávanie. Je to voliteľný parameter.
Typ návratu
Funkcia preg_match() vráti hodnotu true, ak sa vzor zhoduje inak, vráti hodnotu false.
Poznámka: Ak chcete iba skontrolovať, či je jeden reťazec obsiahnutý v inom reťazci, nepoužívajte funkciu preg_match(). Použite funkciu strpos(), pretože to bude rýchlejšie.
Príklady
<?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); ?>
Výkon:
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 ) )
Vyššie uvedený výstup môžeme vidieť nižšie, aby sme mu lepšie porozumeli.
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 ) )
Príklady: vyhľadávanie bez rozlišovania malých a veľkých písmen
<?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.'; } ?>
Výkon:
Pattern matched in string. Array ( [0] => JTP )
Príklady: pomocou hranice slova ()
<?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.'; } ?>
Výkon:
A match was found. A match was not found.
Príklady: získajte názov domény z adresy URL
Výkon:
c++ previesť int na reťazec
Domain name is: javatpoint.com
Syntax regulárneho výrazu (Regular Expression).
[abc] | Zhoduje sa s jedným znakom - a, b alebo c |
[^abc] | Zodpovedá akémukoľvek jednotlivému znaku okrem a, b alebo c |
[a-z] | Zodpovedá akémukoľvek jednotlivému znaku v rozsahu a-z |
[a-zA-Z] | Akýkoľvek jednotlivý znak v rozsahu a-z alebo A-Z |
^ | Začiatok riadku |
$ | Koniec riadku |
A | Začiatok reťazca |
S | Koniec reťazca |
. | Akákoľvek jedna postava |
s | Akýkoľvek znak medzery |
S | Akýkoľvek znak bez medzery |
d | Ľubovoľná číslica |
D | Akékoľvek nečíslicové |
In | Akýkoľvek znak slova (písmeno, číslo, podčiarkovník) |
IN | Akýkoľvek neslovný znak |
Kontrola hraníc slova | |
/?/ | Spustí a ukončí regulárny výraz |
(?) | Zachyťte všetko v zátvorkách () |
(a|b) | a alebo b |
a? | Nula alebo jedna z a |
a* | Nula alebo viac a |
a+ | Jeden alebo viac z a |
a{3} | Presne 3 z a |
a{3,} | 3 alebo viac a |
a{3,6} | Medzi 3. a 6. hod |
i | Kontrola bez rozlišovania malých a veľkých písmen |
m | Vytvorte bodové zhodné nové riadky |
X | Ignorovať medzery v regulárnom výraze |