logo

PHP preg_match() funksjon

Preg_match()-funksjonen er en innebygd funksjon i PHP som utfører et regulært uttrykk. Denne funksjonen søker etter mønster i strengen, og returnerer true hvis mønsteret eksisterer ellers returnerer false.

Vanligvis starter søket fra begynnelsen av $subject-strengparameteren. Den valgfrie parameteren $offset brukes til å starte søket fra den angitte posisjonen.

Syntaks

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

Merk: $offset er en valgfri parameter som spesifiserer posisjonen hvorfra søket skal begynne.

Parametere

Denne funksjonen godtar fem parametere, som er beskrevet nedenfor:

mønster

Det er en strengtypeparameter. Denne parameteren holder mønsteret for å søke som en streng.

Emne

Denne parameteren inneholder inndatastrengen der vi søker etter mønster.

fyrstikker

Hvis samsvarende parameter er oppgitt, vil den inneholde søkeresultatene.

kamper[0] - Den vil holde teksten, som samsvarte med hele mønsteret.

kamper[1] - Den vil inneholde teksten, som samsvarte med det første fangede undermønsteret i parentes, og så videre.

flagg

filmer123 til

Flaggene kan ha følgende flagg gitt nedenfor:

    PREG_OFFSET_CAPTURE:Hvis dette flagget sendes i preg_match(), vil den vedlagte strengforskyvningen også returnere for hver treff.PREG_UNMATCHED_AS_NULL:Hvis dette flagget sendes i preg_match(), vil umatchede undermønster bli rapportert som NULL, ellers vil de bli rapportert som tom streng.

offset

Som standard starter søket fra begynnelsen av $subject-parameteren. Offset-parameteren brukes til å spesifisere stedet hvor søket skal starte. Det er en valgfri parameter.

Returtype

Preg_match()-funksjonen returnerer true hvis mønsteret samsvarer ellers, returnerer den usann.

Merk: Hvis du bare vil sjekke om en streng er inneholdt i en annen streng, ikke bruk preg_match() funksjonen. Bruk strpos()-funksjonen da den vil være raskere.

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

Produksjon:

 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 utgangen ovenfor som gitt nedenfor for å forstå den 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øk uten store og små bokstaver

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

Produksjon:

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

Eksempler: ved å bruke ordgrense ()

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

Produksjon:

 A match was found. A match was not found. 

Eksempler: få domenenavnet ut fra URL-en

 

Produksjon:

setter i java
 Domain name is: javatpoint.com 

Regex (regulært uttrykk) syntaks

[abc] Matcher et enkelt tegn - a, b eller c
[^abc] Matcher ethvert enkelt tegn bortsett fra a, b eller c
[a-z] Matcher ethvert enkelt tegn innenfor området a-z
[a-zA-Z] Ethvert enkelt tegn innenfor området a-z eller A-Z
^ Start av linjen
$ Slutt på linjen
EN Start av streng
Med Slutt på streng
. Ethvert enkelt tegn
s Ethvert mellomromstegn
S Alle tegn som ikke er mellomrom
d Hvilket som helst siffer
D Alle ikke-siffer
I Et hvilket som helst ordtegn (bokstav, tall, understrek)
I Ethvert ikke-ord-tegn
 Ordgrensekontroll
/?/ Starter og avslutter det regulære uttrykket
(?) Fang opp alt i parentes ()
(a|b) a eller b
en? Null eller en av en
en* Null eller mer av en
a+ En eller flere av en
en{3} Nøyaktig 3 av en
en{3,} 3 eller flere av en
a{3,6} Mellom 3 og 6 av en
Jeg Uavhengig av store og små bokstaver sjekk
m Få prikk til å matche nye linjer
x Ignorer mellomrom i regulært uttrykk

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

    ''/?/''Den viser start og slutt på regulære uttrykk.'[^[a-zA-Z0-9._-]'Den samsvarer med alle store eller små bokstaver, tall mellom 0 og 9, prikk, understrek eller bindestreker.'+@[a-zA-Z0-9-]'Det samsvarer med @-symbolet etterfulgt av store eller små bokstaver, tall mellom 0 og 9 eller bindestreker.'+.[a-zA-Z.]{2.5}$/'Prikken escapes ved å bruke omvendt skråstrek og matcher deretter alle små eller store bokstaver med en lengde mellom 2 og 5 på slutten av strengen.