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:
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] => Array ( [0] => javatpoint [1] => 0 ) [1] => Array ( [0] => java [1] => 0 ) [2] => Array ( [0] => t [1] => 4 ) [3] => Array ( [0] => point [1] => 5 ) )
Vi kan se ovanstående utdata enligt nedan för att förstå det bättre.
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 ) )
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>'; print_r($matches); } else { echo 'Pattern not matched in string.'; } ?>
Produktion:
Pattern matched in string. Array ( [0] => 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>'; } 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.'; } ?>
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 |