logo

PHP preg_match() funktion

Funktionen preg_match() är en inbyggd funktion i PHP som utför en matchning av reguljära uttryck. Den här funktionen söker efter mönster i strängen och returnerar sant om mönstret finns annars returnerar false.

I allmänhet börjar sökningen från början av $subject-strängparametern. Den valfria parametern $offset används för att starta sökningen från den angivna positionen.

Syntax

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

Obs: $offset är en valfri parameter som anger varifrån sökningen ska börja.

Parametrar

Denna funktion accepterar fem parametrar, som beskrivs nedan:

mönster

Det är en strängtypsparameter. Denna parameter håller mönstret för att söka som en sträng.

ämne

Denna parameter innehåller inmatningssträngen där vi söker efter mönster.

tändstickor

Om matchningsparameter anges kommer den att innehålla sökresultaten.

matcher[0] - Den kommer att hålla texten, som matchade med hela mönstret.

matcher[1] - Den kommer att innehålla texten, som matchade med det första fångade undermönstret inom parentes, och så vidare.

flaggor

pawandeep rajan

Flaggorna kan ha följande flaggor som anges nedan:

    PREG_OFFSET_CAPTURE:Om denna flagga skickas i preg_match(), kommer den bifogade strängförskjutningen också att returneras för varje förekommande matchning.PREG_UNMATCHED_AS_NULL:Om denna flagga skickas i preg_match(), kommer omatchat undermönster att rapporteras som NULL, annars kommer de att rapporteras som tom sträng.

offset

Som standard startar sökningen från början av parametern $subject. Offsetparametern används för att ange platsen där sökningen ska börja. Det är en valfri parameter.

Returtyp

Funktionen preg_match() returnerar true om mönstret matchar på annat sätt, returnerar den false.

Obs: Om du bara vill kontrollera om en sträng finns i en annan sträng, använd inte preg_match()-funktionen. Använd strpos()-funktionen eftersom den blir snabbare.

Exempel

 <?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 ovanstående utdata enligt nedan för att förstå det bättre.

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

Exempel: skiftlägesokänslig sökning

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

Exempel: genom att använda ordgräns ()

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

Exempel: få ut domännamnet från URL:en

 

Produktion:

json i json exempel
 Domain name is: javatpoint.com 

Regex (reguljärt uttryck) syntax

[abc] Matchar ett enskilt tecken - a, b eller c
[^abc] Matchar alla enstaka tecken utom a, b eller c
[a-z] Matchar alla enstaka tecken inom intervallet a-z
[a-zA-Z] Vilket enskilt tecken som helst inom intervallet a-z eller A-Z
^ Början av raden
$ Slut på raden
A Start av sträng
Med Slutet på strängen
. Vilken enskild karaktär som helst
s Vilket blanksteg som helst
S Alla tecken som inte är blanksteg
d Vilken siffra som helst
D Alla icke-siffriga
I Alla ordtecken (bokstav, siffra, understreck)
I Alla tecken som inte är ord
 Ordgränskontroll
/?/ Startar och avslutar det reguljära uttrycket
(?) Fånga allt inom parentes ()
(a|b) a eller b
a? Noll eller en av en
en* Noll eller mer av a
a+ En eller flera av en
en{3} Exakt 3 av en
en{3,} 3 eller fler av en
a{3,6} Mellan 3 och 6 av en
i Skiftokänslig kontroll
m Få punkten att matcha nya rader
x Ignorera blanksteg i regex

Förklara mönstret '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Den visar början och slutet av reguljärt uttryck.'[^[a-zA-Z0-9._-]'Den matchar alla versaler eller gemener, siffror mellan 0 och 9, prickar, understreck eller bindestreck.'+@[a-zA-Z0-9-]'Den matchar @-symbolen följt av versaler eller gemener, siffror mellan 0 och 9 eller bindestreck.'+.[a-zA-Z.]{2.5}$/'Punkten escapes genom att använda omvänt snedstreck och matchar sedan alla små eller stora bokstäver med en längd mellan 2 och 5 i slutet av strängen.