PHP preg_match(): Expresiones regulares (Regex)

¿Qué es la expresión regular en PHP?

Expresión regular PHP También conocidos como expresiones regulares, son un potente algoritmo de coincidencia de patrones que se puede realizar en una sola expresión. Las expresiones regulares utilizan operadores aritméticos como (+,-,^) para crear com.plex expresiones. Pueden ayudarle a realizar tareas como validar email direcciones, dirección IP, etc.

¿Por qué utilizar expresiones regulares?

  • Las expresiones regulares de PHP simplifican la identificación de patrones en datos de cadenas llamando a una sola función. Esto nos ahorra tiempo de codificación.
  • Al validar la entrada del usuario como email dirección, nombres de dominio, números de teléfono, direcciones IP,
  • Destacar palabras clave en los resultados de búsqueda
  • Al crear una plantilla HTML personalizada. Regex en PHP se puede utilizar para identificar las etiquetas de la plantilla y reemplazarlas con datos reales.

Funciones de expresión regular integradas en PHP

PHP tiene funciones integradas que nos permiten trabajar con funciones regulares que aprenderemos en este tutorial de Expresiones regulares de PHP. Veamos las funciones de expresión regular más utilizadas en PHP.

  • preg_match() en PHP: esta función se utiliza para realizar coincidencias de patrones en PHP en una cadena. Devuelve verdadero si se encuentra una coincidencia y falso si no se encuentra ninguna coincidencia.
  • preg_split() en PHP: esta función se utiliza para realizar una coincidencia de patrón en una cadena y luego dividir los resultados en una matriz numérica
  • preg_replace() en PHP: esta función se utiliza para realizar una coincidencia de patrón en una cadena y luego reemplazar la coincidencia con el texto especificado.

A continuación se muestra la sintaxis de una función de expresión regular como PHP preg_match(), PHP preg_split() o PHP preg_replace().

<?php
function_name('/pattern/',subject);
?>

AQUÍ,

  • “nombre_función(…)” es PHP preg_match(), PHP preg_split() o PHP preg_replace().
  • “/…/” Las barras diagonales indican el principio y el final de nuestra función de prueba de expresiones regulares PHP
  • “'/pattern/'” es el patrón que necesitamos hacer coincidir
  • “asunto” es la cadena de texto con la que se comparará

Veamos ahora ejemplos prácticos que implementan las funciones de expresiones regulares de PHP anteriores.

Preg_match() en PHP

El primer ejemplo utiliza la función preg_match() en PHP para realizar una coincidencia de patrón simple para la palabra gurú en una URL determinada.

El siguiente código muestra la implementación de la función de prueba preg_match() para el ejemplo anterior.

<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
	echo "the url $my_url contains guru";
}
else
{
	echo "the url $my_url does not contain guru";
}
?>

Navegar a la URL http://localhost/phptuts/preg_match_simple.php

Funciones de expresión regular incorporadas

Examinemos la parte del código responsable de nuestra salida "preg_match('/gurú/', $mi_url)” AQUÍ,

  • “preg_match(…)” es la función de expresión regular de PHP
  • “'/guru/'” es el patrón de expresión regular que debe coincidir
  • “$my_url” es la variable que contiene el texto que se va a comparar.

El siguiente diagrama resume los puntos anteriores.

PHP Preg_split()

Veamos ahora otro ejemplo que usa preg_split() en la función PHP.

Tomaremos una frase de cadena y la dividiremos en una matriz; el patrón a combinar es un solo espacio.

La cadena de texto que se utilizará en este ejemplo es "Me encantan las expresiones regulares".

El siguiente código ilustra la implementación del ejemplo anterior.

<?php

$my_text="I Love Regular Expressions";

$my_array  = preg_split("/ /", $my_text);

print_r($my_array );

?>

Navegar a la URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

Veamos ahora preg_replace() en Función PHP que realiza una coincidencia de patrón y luego reemplaza el patrón con otra cosa.

El siguiente código busca la palabra gurú en un cadena.

Reemplaza la palabra gurú con la palabra gurú rodeada de código CSS que resalta el color de fondo.

<?php

$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";

$text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text);

echo $text;

?>

Suponiendo que haya guardado el archivo preg_replace.php, busque la URL http://localhost/phptuts/preg_replace.php

PHP Preg_replace()

Metacaracteres de expresión regular

Los ejemplos anteriores utilizaron patrones muy básicos; Los metacaracteres simplemente nos permiten realizar más comunicaciones.plex coincidencias de patrones, como probar la validez de un email DIRECCIÓN. Veamos ahora los metacaracteres más utilizados.

Metacarácter Descripción Ejemplo
. Coincide con cualquier carácter excepto una nueva línea /./ coincide con cualquier cosa que tenga un solo carácter
^ Coincide con el comienzo de una cadena/excluye caracteres /^PH/ coincide con cualquier cadena que comience con PH
$ Coincide con el patrón al final de la cuerda. /com$/ coincide con guru99.com,yahoo.com, etc.
* Coincide con cero (0) o más caracteres /com*/ coincide con computadora, comunicación, etc.
+ Requiere que los caracteres anteriores aparezcan al menos una vez /yah+oo/ coincide con yahoo
\ Se utiliza para escapar de metacaracteres. /yahoo+\.com/ trata el punto como un valor literal
[...] Clase de personaje /[abc]/ coincide con abc
Arizona Coincide con letras minúsculas /a-z/ coincide con genial, feliz, etc.
A-Z Coincide con letras mayúsculas /A-Z/ coincide con QUÉ, CÓMO, POR QUÉ, etc.
0-9 Coincide con cualquier número entre 0 y 9 /0-4/ coincide con 0,1,2,3,4

La lista anterior solo proporciona los metacaracteres más utilizados en expresiones regulares.

Veamos ahora una bastante complex ejemplo que comprueba la validez de un email dirección.

<?php
$my_email = "name@company.com";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email is a valid email address";
}
else
{
  echo "$my_email is NOT a valid email address";
}
?>

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

AQUÍ,

  • “'/…/'” comienza y finaliza la expresión regular
  • “^[a-zA-Z0-9._-]” coincide con letras mayúsculas o minúsculas, números entre 0 y 9 y puntos, guiones bajos o guiones.
  • “+@[a-zA-Z0-9-]” coincide con el símbolo @ seguido de letras minúsculas o mayúsculas, números entre 0 y 9 o guiones.
  • “+\.[a-zA-Z.]{2,5}$/” escapa del punto usando la barra invertida y luego coincide con cualquier letra minúscula o mayúscula con una longitud de caracteres entre 2 y 5 al final de la cadena.

Navegar a la URL http://localhost/phptuts/preg_match.php

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

Como puede ver en el desglose del ejemplo anterior, los metacaracteres son muy poderosos cuando se trata de hacer coincidir patrones.

Resumen

  • Una expresión regular o Regex en PHP es un algoritmo de coincidencia de patrones
  • Las expresiones regulares son muy útiles al realizar comprobaciones de validación, crear sistemas de plantillas HTML que reconozcan etiquetas, etc.
  • PHP tiene funciones integradas, a saber, PHP preg_match(), PHP preg_split() y PHP preg_replace() que admiten expresiones regulares.
  • Los metacaracteres nos permiten crear com.plex .