Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL, AMP y htaccess


PHP preg_match(): buscar o comparar cadenas con expresiones regulares

Vamos a ver la función de PHP preg_match(),su funcionalidad nos permite buscar o comparar cadenas mediante expresiones regulares.

Otras funciones con que nos pueden parecer interesantes son:

La definicón oficial de PHP preg_match() es:

Realiza una comparación con una expresión regular

Sintaxis PHP preg_match()

Veamos la sintaxis de esta función extraída de su web oficial:

Esta es la sintaxis de la función de PHP, ahora os detallo cada uno de los parámetros:

  • entero: La función devuelve un número entero. El valor será ‘1’ en caso de coincidencia, ‘0’ si no la hay, también puede devolver FALSE si hay algún error en la función.
  • exp_regular (Obligatorio): Expresión regular que usaremos para la comparación.
  • cadena (Obligatorio): Cadena de texto comparada.
  • coincidencias (Opcional): Es un array con información de las partes de la cadena que coinciden con la expresión regular.
  • flags (Opcional): Si se pasa el parametro ‘PREG_OFFSET_CAPTURE’ en el array de coincidencias también vendrá el índice de comienzo de cada coincidencia.
  • comienzo (Opcional): Posición de comienzo dentro de la ‘cadena‘ de la comparación.

Hay varios caracteres que son delimitadores del patrón::

  • i: Indica que el patrón de búsqueda no diferencia entre mayúsculas y minúsculas.
  • b: Delimita el final de la condición estricta de un patrón, es decir, sin comparamos ‘/compara/b’ con ‘/comparador/’ la búsqueda dará FALSE.

Ejemplo de PHP preg_match() con delimitador ‘i’

Primer ejemplo con el delimitador ‘i’:

Explico el código superior:

  • Busco ‘PRUEBA’ en ‘esto es una prueba’.
  • Como usamos el delimitador ‘i’ no se diferencian mayúsculas y minúsculas.
  • Por lo que hay coincidencia.

Ejemplo de PHP preg_match() con delimitador ‘b’

Segundo ejemplo con el delimitador ‘b’:

Explico el código superior:

  • Busco ‘compara’ en ‘vamos a comparar código’.
  • Como usamos el delimitador ‘b’ realizamos una búsqueda estricta.
  • Por lo que NO hay coincidencia, ‘compara’ no es la mismo cadena que ‘comparar’.

Ya hemos visto ejemplos con delimitadores de PHP preg_match(), probad a cambiar los ejemplos para ver el efecto contrario.

Ejemplo de búsqueda con preg_match() usando expresión regular

Tercer ejemplo usando expresión regular para que se busque al menos 2 números seguidos en la cadena:

Explico el código:

  • Se realiza la búsqueda de 2 números seguidos en la cadena pasada.
  • Se usa una expresión regular para realizar la búsqueda o comparación.
  • Hay coincidencia por el ’45’. El 22 está integrado dentro de una cadena.

Ejemplo de preg_match() guardando las coincidencias en un array

Cuarto ejemplo para guardar las coincidencias en un array y mostrar su valor por pantalla:

Explico el código:

  • Se realiza la búsqueda de la cadena ‘nombre’ en la cadena ‘nombres’.
  • Se pasa como parámetro una variable para guardar un array con las coincidencias
  • Muestro con var_export() el array con las coincidencias.
  • Hay coincidencia.

Ejemplo con el parámetro flags

A continuación usamos el mismo ejemplo que el anterior pero pasando el parámetro $flags para que nos devuelva el índice del array de la ocurrencia.

Ejemplo con el parámetro de inicio de la búsqueda

Último ejemplo pasando el parámetro $comienzo para definir el punto de partida de la comparación.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies