logo

Función PHP preg_match()

La función preg_match() es una función incorporada de PHP que realiza una coincidencia de expresiones regulares. Esta función busca un patrón en la cadena y devuelve verdadero si el patrón existe; de ​​lo contrario, devuelve falso.

Generalmente, la búsqueda comienza desde el principio del parámetro de cadena $subject. El parámetro opcional $offset se utiliza para iniciar la búsqueda desde la posición especificada.

Sintaxis

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

Nota: $offset es un parámetro opcional que especifica la posición desde donde comenzar la búsqueda.

Parámetros

Esta función acepta cinco parámetros, que se describen a continuación:

patrón

Es un parámetro de tipo cadena. Este parámetro contiene el patrón a buscar como una cadena.

sujeto

Este parámetro contiene la cadena de entrada en la que buscamos el patrón.

partidos

Si se proporciona el parámetro coincidencias, contendrá los resultados de la búsqueda.

coincidencias[0] - Contendrá el texto que coincida con el patrón completo.

coincidencias[1] - Contendrá el texto que coincida con el primer subpatrón entre paréntesis capturado, y así sucesivamente.

banderas

np.linspace

Las banderas pueden tener las siguientes banderas que se indican a continuación:

    PREG_OFFSET_CAPTURE:Si este indicador se pasa en preg_match(), para cada coincidencia que ocurra también se devolverá el desplazamiento de la cadena adjunta.PREG_UNMATCHED_AS_NULL:Si este indicador se pasa en preg_match(), el subpatrón no coincidente se informará como NULL; de lo contrario, se informará como una cadena vacía.

compensar

De forma predeterminada, la búsqueda comienza desde el principio del parámetro $subject. El parámetro de desplazamiento se utiliza para especificar el lugar donde comenzará la búsqueda. Es un parámetro opcional.

obtener la fecha actual en java

Tipo de devolución

La función preg_match() devuelve verdadero si el patrón coincide; de ​​lo contrario, devuelve falso.

Nota: Si solo desea comprobar si una cadena está contenida en otra cadena, no utilice la función preg_match(). Utilice la función strpos() ya que será más rápida.

Ejemplos

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

Producción:

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

Podemos ver el resultado anterior como se indica a continuación para comprenderlo mejor.

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

Ejemplos: búsqueda que no distingue entre mayúsculas y minúsculas

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

Producción:

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

Ejemplos: mediante el uso de límites de palabras ()

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

Producción:

 A match was found. A match was not found. 

Ejemplos: obtener el nombre de dominio de la URL

 

Producción:

 Domain name is: javatpoint.com 

Sintaxis de expresiones regulares (expresión regular)

[a B C] Coincide con un solo carácter: a, b o c
[^abc] Coincide con cualquier carácter excepto a, b o c
[Arizona] Coincide con cualquier carácter dentro del rango a-z
[a-zA-Z] Cualquier carácter dentro del rango a-z o A-Z
^ inicio de linea
$ Fin de la línea
A Inicio de cadena
Con Fin de la cuerda
. Cualquier carácter
s Cualquier carácter de espacio en blanco
S Cualquier carácter que no sea un espacio en blanco
d cualquier dígito
D Cualquiera que no sea un dígito
En Cualquier carácter de palabra (letra, número, guión bajo)
EN Cualquier carácter que no sea una palabra
 Comprobador de límites de palabras
/?/ Inicia y finaliza la expresión regular.
(?) Capture todo lo que está entre paréntesis ()
(a|b) a o B
¿a? Cero o uno de un
a* Cero o más de un
un+ Uno o más de un
un{3} exactamente 3 de un
un {3,} 3 o más de un
un{3,6} Entre 3 y 6 de un
i Comprobación que no distingue entre mayúsculas y minúsculas
metro Hacer coincidir puntos con nuevas líneas
X Ignorar espacios en blanco en expresiones regulares

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

    ''/?/''Muestra el inicio y el final de la expresión regular.'[^[a-zA-Z0-9._-]'Coincide con letras mayúsculas o minúsculas, números entre 0 y 9, puntos, guiones bajos o guiones.'+@[a-zA-Z0-9-]'Coincide con el símbolo @ seguido de letras mayúsculas o minúsculas, números entre 0 y 9 o guiones.'+.[a-zA-Z.]{2.5}$/'El punto se escapa mediante una barra invertida y luego coincide con cualquier letra minúscula o mayúscula con una longitud entre 2 y 5 al final de la cadena.