¿Qué es una expresión regular en PHP?
Expresión regular PHP también conocido como regex es un poderoso algoritmo de coincidencia de patrones que se puede realizar en una sola oración. Las expresiones regulares usan operadores aritméticos como (+, -, ^) para crear expresiones complejas. Pueden ayudarlo a completar tareas como validar direcciones de correo electrónico, dirección IP, etc.
Por que usar expresiones regulares
- Las expresiones regulares de PHP simplifican los patrones de reconocimiento en datos cableados llamando a una sola función. Esto nos ahorra tiempo de codificación.
- Validación de la entrada del usuario, como dirección de correo electrónico, nombres de dominio, números de teléfono, direcciones IP,
- Resalte las 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.
En este tutorial de PHP Regex, aprenderá:
Funciones de expresión regular integradas en PHP
PHP tiene funciones agregadas que nos permiten trabajar con funciones regulares que aprenderemos en este tutorial de Expresiones de PHP. Veamos las funciones de expresión regular que se usan comúnmente en PHP.
- preg_match () en PHP: esta función se usa para hacer coincidir patrones en PHP en un cable. Devuelve verdadero si se encuentran sirvientas y falso si no se encuentran sirvientas.
- preg_split () en PHP: esta función se usa para hacer coincidir el patrón en un cable y luego dividir los resultados en una matriz numérica
- preg_replace () en PHP: esta función se usa para hacer coincidir el patrón de un cable y luego reemplazar el texto especificado con la coincidencia.
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 comienzo y el final de nuestra función de prueba de expresiones regulares de PHP
- El «‘/ patrón /'» es el patrón que necesitamos hacer coincidir
- «asunto» es la cadena de texto que debe coincidir
Ahora veremos ejemplos prácticos que implementan las funciones de expresiones regulares de PHP anteriores.
PHP Preg_match ()
El primer ejemplo usa la aplicación PHP preg_match () para hacer un juego de patrones simple para la palabra guru en una URL en particular.
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"; } ?>
Busque la URL http: //localhost/phptuts/preg_match_simple.php
Examinamos la parte del código que es responsable de nuestra salida «preg_match (‘/ guru /’, $ my_url) « AQUÍ,
- «preg_match (…)» es una función de expresión regular de PHP
- El patrón de expresión regular que debe coincidir es «‘/ guru /'»
- La variable que contiene el texto que se va a hacer coincidir es «$ my_url».
El siguiente diagrama resume los puntos anteriores.
PHP Preg_split ()
Veamos ahora otro ejemplo que usa la aplicación PHP preg_split ().
Tomamos una frase de cadena y la descomponemos en una serie; el patrón a emparejar es un solo espacio.
La cadena de texto que se utilizará en este ejemplo es «Me encantan las expresiones regulares».
El código siguiente ilustra la implementación del ejemplo anterior.
<?php $my_text="I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Busque la URL http: //localhost/phptuts/preg_split.php
PHP Preg_replace ()
Ahora miramos la función preg_replace () en una aplicación PHP que hace coincidir patrones y luego reemplaza el patrón con otra cosa.
El siguiente código busca la palabra guru en una cadena.
Reemplaza la palabra guru con la palabra guru rodeada de código CSS que enfatiza 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 guardó el archivo preg_replace.php, navegue a la URL http: //localhost/phptuts/preg_replace.php
Metacaracteres de demostración regulares
Los ejemplos anteriores utilizaron patrones muy básicos; Los metacaracteres solo permiten juegos de patrones más complejos, como probar la validez de una dirección de correo electrónico. Veamos ahora los metacaracteres de uso común.
Metacarácter | Suelte | Ejemplo |
---|---|---|
. | Coincide con un carácter en lugar de una nueva línea | /./ compatible con cualquier cosa que tenga un carácter individual |
^ | Coincide con inicio o cableado / no incluye caracteres | / ^ PH / que coincide con cualquier cadena que comience con PH |
PS | Coincidencia de patrones al final del cable | / com $ / trajes guru99.com, yahoo.com Etc. |
* | Coincide con cualquier (cero) o más caracteres | / com * / computadora a juego, comunicación, etc. |
+ | Requiere que los personajes anteriores aparezcan al menos una vez | / yah + oo / yahoo trajes |
Se usa para escapar de los metacaracteres | /yahoo+.com/ trata el punto como un valor literal | |
[…] | Clase de personaje | /[abc]/ abc juegos |
Arizona | Coincidir con letras minúsculas | / az / cool, happy suit, etc. |
Arizona | Las letras mayúsculas coinciden | / AZ / que coincide con POR QUÉ, CÓMO, POR QUÉ, etc. |
0-9 | Coincide con cualquier número entre 0 y 9 | / 0-4 / juegos 0,1,2,3,4 |
La lista anterior proporciona solo los metacaracteres más comunes utilizados en expresiones regulares.
Veamos ahora un ejemplo bastante complejo que verifica la validez de una dirección de correo electrónico.
<?php
$my_email = "This email address is being protected from spambots. You need JavaScript enabled to view it.";
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";
}
?>
Explica el patrón »[/^[a-zA-Z0-9._-]+ @[a-zA-Z0-9-]+ .[a-zA-Z.]{2,5} $ /]»
AQUÍ,
- La expresión regular comienza y termina «‘/…/'»
- «^[a-zA-Z0-9._-]»que coincida con letras minúsculas o mayúsculas, números entre 0 y 9 y puntos, guiones bajos o guiones.
- «+ @[a-zA-Z0-9-]»que coincida 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 hace coincidir cualquier letra minúscula o mayúscula con una longitud de carácter entre 2 y 5 al final de la cadena.
Busque la URL http: //localhost/phptuts/preg_match.php
Como puede ver en el desglose de muestra anterior, los metacaracteres son muy poderosos para hacer coincidir patrones.
Resumen
- La expresión regular o Regex en PHP es un algoritmo de coincidencia de patrones
- Las expresiones regulares son muy útiles cuando se realizan comprobaciones de validación, se crean sistemas de plantillas HTML que reconocen etiquetas, etc.
- PHP ha agregado funciones a saber PHP preg_match (), PHP preg_split () y PHP preg_replace () que admiten expresiones regulares.
- Los metacaracteres nos permiten crear patrones complejos