Funkce preg_match() je vestavěná funkce PHP, která provádí shodu regulárního výrazu. Tato funkce hledá v řetězci vzor a vrátí hodnotu true, pokud vzor existuje, jinak vrátí hodnotu false.
Obecně vyhledávání začíná od začátku $subject string parametr. Nepovinný parametr $offset slouží k zahájení vyhledávání od zadané pozice.
Syntax
int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset)
Poznámka: $offset je volitelný parametr, který určuje pozici, odkud má vyhledávání začít.
Parametry
Tato funkce přijímá pět parametrů, které jsou popsány níže:
vzor
Je to parametr typu řetězec. Tento parametr uchovává vzor pro vyhledávání jako řetězec.
předmět
Tento parametr obsahuje vstupní řetězec, ve kterém hledáme vzor.
zápasy
Pokud je zadán parametr odpovídá, bude obsahovat výsledky vyhledávání.
odpovídá[0] - Bude obsahovat text, který se shoduje s úplným vzorem.
zápasy[1] - Bude obsahovat text, který se shodoval s prvním zachyceným podvzorem v závorkách a tak dále.
vlajky
localdate
Příznaky mohou mít následující příznaky uvedené níže:
offset
Ve výchozím nastavení začíná vyhledávání od začátku parametru $subject. Parametr offset slouží k určení místa, kde začne vyhledávání. Je to volitelný parametr.
tučné písmo v css
Typ návratu
Funkce preg_match() vrátí hodnotu true, pokud se vzor shoduje jinak, vrátí hodnotu false.
Poznámka: Pokud chcete pouze zkontrolovat, zda je jeden řetězec obsažen v jiném řetězci, nepoužívejte funkci preg_match(). Použijte funkci strpos(), protože to bude rychlejší.
Pří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ýstup:
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 ) )
Můžeme vidět výše uvedený výstup, jak je uvedeno níže, abychom mu lépe porozuměli.
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 ) )
Příklady: vyhledávání bez rozlišení velkých a malý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ýstup:
Pattern matched in string. Array ( [0] => JTP )
Příklady: pomocí 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ýstup:
A match was found. A match was not found.
Příklady: získat název domény z adresy URL
Výstup:
Domain name is: javatpoint.com
Syntaxe regulárního výrazu (Regular Expression).
[abc] | Odpovídá jednomu znaku - a, b nebo c |
[^abc] | Odpovídá libovolnému jednotlivému znaku kromě a, b nebo c |
[a-z] | Odpovídá libovolnému jednotlivému znaku v rozsahu a–z |
[a-zA-Z] | Jakýkoli jednotlivý znak v rozsahu a–z nebo A–Z |
^ | Začátek řádku |
$ | Konec čáry |
A | Začátek řetězce |
S | Konec řetězce |
. | Jakákoli jednotlivá postava |
s | Jakýkoli znak mezery |
S | Jakýkoli znak bez mezer |
d | Jakákoli číslice |
D | Jakákoli nečíslice |
V | Libovolný znak slova (písmeno, číslo, podtržítko) |
V | Jakýkoli neslovní znak |
Kontrola hranic slova | |
/?/ | Spustí a ukončí regulární výraz |
(?) | Zachyťte vše v závorkách () |
(a|b) | a nebo b |
A? | Nula nebo jedna z a |
A* | Nula nebo více a |
a+ | Jeden nebo více z a |
a{3} | Přesně 3 z a |
a{3,} | 3 nebo více a |
a{3,6} | Mezi 3. a 6. hodinou a |
i | Kontrola nerozlišující malá a velká písmena |
m | Vytvořte tečkovou shodu nových řádků |
X | Ignorujte mezery v regulárním výrazu |