logo

PHP preg_match() funktion

Funktionen preg_match() er en indbygget funktion i PHP, der udfører et regulært udtryksmatch. Denne funktion søger i strengen efter mønster, og returnerer sand, hvis mønsteret eksisterer, ellers returnerer falsk.

Generelt starter søgningen fra begyndelsen af ​​strengparameteren $subject. Den valgfri parameter $offset bruges til at starte søgningen fra den angivne position.

Syntaks

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

Bemærk: $offset er en valgfri parameter, der specificerer den position, hvorfra søgningen skal begynde.

Parametre

Denne funktion accepterer fem parametre, som er beskrevet nedenfor:

mønster

Det er en strengtypeparameter. Denne parameter holder mønsteret til at søge som en streng.

emne

Denne parameter indeholder inputstrengen, hvori vi søger efter mønster.

Tændstikker

Hvis matchende parameter er angivet, vil den indeholde søgeresultaterne.

kampe[0] - Det vil indeholde teksten, som matchede med det komplette mønster.

kampe[1] - Den vil indeholde teksten, som matchede med det første fangede undermønster i parentes, og så videre.

flag

film123 til

Flagene kan have følgende flag angivet nedenfor:

    PREG_OFFSET_CAPTURE:Hvis dette flag sendes i preg_match(), vil den vedhæftede strengforskydning også returnere for hvert forekommende match.PREG_UNMATCHED_AS_NULL:Hvis dette flag sendes i preg_match(), vil umatchede undermønster blive rapporteret som NULL, ellers vil de blive rapporteret som tom streng.

offset

Som standard starter søgningen fra begyndelsen af ​​$subject-parameteren. Offset-parameteren bruges til at angive det sted, hvor søgningen starter. Det er en valgfri parameter.

Returtype

Funktionen preg_match() returnerer sand, hvis mønsteret matcher ellers, returnerer den falsk.

Bemærk: Hvis du kun vil kontrollere, om en streng er indeholdt i en anden streng, skal du ikke bruge funktionen preg_match(). Brug strpos()-funktionen, da den vil være hurtigere.

Eksempler

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

Produktion:

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

Vi kan se ovenstående output som angivet nedenfor for at forstå det bedre.

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

Eksempler: søgning uden store og små bogstaver

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

Produktion:

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

Eksempler: ved at bruge ordgrænse ()

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

Produktion:

 A match was found. A match was not found. 

Eksempler: få domænenavnet ud fra URL'en

 

Produktion:

tredje normalform
 Domain name is: javatpoint.com 

Regex (regulært udtryk) syntaks

[abc] Matcher et enkelt tegn - a, b eller c
[^abc] Matcher ethvert enkelt tegn undtagen a, b eller c
[a-z] Matcher ethvert enkelt tegn inden for området a-z
[a-zA-Z] Ethvert enkelt tegn inden for området a-z eller A-Z
^ Start af linjen
$ End of line
EN Start af streng
Med Slut på streng
. Ethvert enkelt tegn
s Ethvert mellemrumstegn
S Ethvert tegn uden mellemrum
d Ethvert ciffer
D Ethvert ikke-cifret
I Ethvert ordtegn (bogstav, tal, understregning)
I Ethvert ikke-ord-tegn
 Ordgrænsekontrol
/?/ Starter og afslutter det regulære udtryk
(?) Fang alt i parentes ()
(a|b) a eller b
en? Nul eller en af ​​en
en* Nul eller mere af en
a+ En eller flere af en
en{3} Præcis 3 af en
en{3,} 3 eller flere af en
en{3,6} Mellem 3 og 6 af en
jeg Uafhængig tjek
m Få prikken til at matche nye linjer
x Ignorer mellemrum i regulært udtryk

Forklaring af mønsteret '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Det viser starten og slutningen af ​​det regulære udtryk.'[^[a-zA-Z0-9._-]'Det matcher alle store eller små bogstaver, tal mellem 0 og 9, prikker, understregninger eller bindestreger.'+@[a-zA-Z0-9-]'Det matcher @-symbolet efterfulgt af store eller små bogstaver, tal mellem 0 og 9 eller bindestreger.'+.[a-zA-Z.]{2.5}$/'Prikken escapes ved at bruge omvendt skråstreg og matcher derefter alle små eller store bogstaver med en længde mellem 2 og 5 i slutningen af ​​strengen.