logo

Funció PHP preg_match().

La funció preg_match() és una funció integrada de PHP que realitza una coincidència d'expressió regular. Aquesta funció cerca un patró a la cadena i retorna true si el patró existeix, en cas contrari retorna false.

Generalment, la cerca comença des del principi del paràmetre de cadena $subject. El paràmetre opcional $offset s'utilitza per iniciar la cerca des de la posició especificada.

Sintaxi

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

Nota: $offset és un paràmetre opcional que especifica la posició des d'on començar la cerca.

Paràmetres

Aquesta funció accepta cinc paràmetres, que es descriuen a continuació:

patró

És un paràmetre de tipus cadena. Aquest paràmetre conté el patró per cercar com a cadena.

assignatura

Aquest paràmetre conté la cadena d'entrada en la qual cerquem el patró.

partits

Si es proporciona el paràmetre de coincidències, contindrà els resultats de la cerca.

coincidències[0] - Conté el text, que coincideix amb el patró complet.

coincidències[1] - Contindrà el text, que coincideix amb el primer subpatró capturat entre parèntesis, i així successivament.

banderes

encapsulació en java

Les banderes poden tenir les següents banderes que es mostren a continuació:

    PREG_OFFSET_CAPTURE:Si aquest senyalador es passa a preg_match(), per a cada coincidència que es produeixi, també tornarà el desplaçament de cadena adjunt.PREG_UNMATCHED_AS_NULL:Si aquest senyalador es passa a preg_match(), el subpatró no coincident s'informarà com a NULL, en cas contrari s'informarà com a cadena buida.

compensar

Per defecte, la cerca comença des del principi del paràmetre $subject. El paràmetre offset s'utilitza per especificar el lloc on començarà la cerca. És un paràmetre opcional.

Tipus de retorn

La funció preg_match() retorna true si el patró coincideix en cas contrari, retorna false.

Nota: Si només voleu comprovar si una cadena està continguda en una altra cadena, no feu servir la funció preg_match(). Utilitzeu la funció strpos() perquè serà més ràpid.

Exemples

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

Sortida:

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

Podem veure la sortida anterior com es mostra a continuació per entendre-la millor.

terminal kali linux
 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 ) ) 

Exemples: cerca que no distingeix entre majúscules i minúscules

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

Sortida:

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

Exemples: utilitzant el límit de paraula ()

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

Sortida:

 A match was found. A match was not found. 

Exemples: extreu el nom del domini de l'URL

 

Sortida:

 Domain name is: javatpoint.com 

Sintaxi Regex (Expressió regular).

[abc] Coincideix amb un sol caràcter: a, b o c
[^abc] Coincideix amb qualsevol caràcter menys a, b o c
[a-z] Coincideix amb qualsevol caràcter de l'interval a-z
[a-zA-Z] Qualsevol caràcter dins de l'interval a-z o A-Z
^ Inici de la línia
$ Final de línia
A Inici de la cadena
Amb Final de corda
. Qualsevol personatge
s Qualsevol caràcter d'espai en blanc
S Qualsevol caràcter que no sigui espai en blanc
d Qualsevol dígit
D Qualsevol que no sigui dígit
En Qualsevol caràcter de paraula (lletra, número, guió baix)
IN Qualsevol caràcter que no sigui una paraula
 Verificador de límits de paraules
/?/ Inicia i acaba l'expressió regular
(?) Captura tot el que està entre parèntesis ()
(a|b) a o b
a? Zero o un d'a
a* Zero o més d'a
a+ Un o més d'a
a{3} Exactament 3 d'a
a{3,} 3 o més d'a
a{3,6} Entre el 3 i el 6 de a
i Comprovació que no distingeix entre majúscules i minúscules
m Feu que el punt coincideixi amb les noves línies
x Ignora els espais en blanc a l'expressió regular

Explicació del patró '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''Mostra l'inici i el final de l'expressió regular.'[^[a-zA-Z0-9._-]'Coincideix amb les lletres majúscules o minúscules, els números entre 0 i 9, el punt, el guió baix o els guions.'+@[a-zA-Z0-9-]'Coincideix amb el símbol @ seguit de les lletres majúscules o minúscules, els números entre 0 i 9 o els guions.'+.[a-zA-Z.]{2,5}$/'El punt s'escapa mitjançant la barra invertida i després coincideix amb qualsevol lletra minúscula o majúscula amb una longitud entre 2 i 5 al final de la cadena.