logo

Funkcia PHP preg_match().

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:

    PREG_OFFSET_CAPTURE:Ak je tento príznak odovzdaný v preg_match(), pri každej zhode sa vráti aj offset priloženého reťazca.PREG_UNMATCHED_AS_NULL:Ak je tento príznak odovzdaný v preg_match(), nezhodný podvzor bude hlásený ako NULL, inak bude hlásený ako prázdny reťazec.

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] =&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 ) ) 

Vyššie uvedený výstup môžeme vidieť nižšie, aby sme mu lepšie porozumeli.

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

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>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Výkon:

 Pattern matched in string. Array ( [0] =&gt; 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>&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; 

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

Vysvetlenie vzoru '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Zobrazuje začiatok a koniec regulárneho výrazu.'[^[a-zA-Z0-9._-]'Zhoduje sa so všetkými veľkými alebo malými písmenami, číslami od 0 do 9, bodkou, podčiarkovníkom alebo pomlčkami.'+@[a-zA-Z0-9-]'Zodpovedá symbolu @, za ktorým nasledujú veľké alebo malé písmená, čísla od 0 do 9 alebo pomlčky.'+.[a-zA-Z.]{2,5} $/'Bodka je ukončená pomocou spätného lomítka a potom sa zhodujú s malými alebo veľkými písmenami s dĺžkou od 2 do 5 na konci reťazca.