Expresiones regulares en PHP: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Expresiones Regulares en PHP: Desde lo Básico hasta Técnicas Avanzadas



Las expresiones regulares (regex) son una herramienta poderosa para buscar, reemplazar y analizar datos de texto. En PHP, se implementan a través de un conjunto de funciones PCRE (Perl Compatible Regular Expressions). En este artículo, cubriremos los conceptos básicos del trabajo con expresiones regulares, examinaremos funciones clave y proporcionaremos ejemplos prácticos que te ayudarán a automatizar el procesamiento de cadenas.



1. Funciones Básicas para Trabajar con Expresiones Regulares en PHP



PHP proporciona varias funciones integradas para trabajar con expresiones regulares. Veamos las más populares.



preg_match() — Encontrar una Coincidencia

La función preg_match() verifica si una cadena coincide con un patrón dado. Devuelve 1 si se encuentra una coincidencia y 0 en caso contrario.



<?php$text = "¡Hola, mundo! PHP es increíble.";$pattern = "/PHP/";

if (preg_match($pattern, $text)) { echo "¡La palabra 'PHP' fue encontrada!";} else { echo "No se encontraron coincidencias.";}?>


Si necesitas obtener la coincidencia en sí, pasa un tercer argumento: un arreglo para los resultados:



<?php$text = "Mi correo: usuario@ejemplo.com";$pattern = "/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}/";

if (preg_match($pattern, $text, $matches)) { echo "Correo encontrado: " . $matches[0];}?>


preg_replace() — Reemplazo Basado en Patrones

La función preg_replace() reemplaza todas las coincidencias de un patrón con una cadena especificada. Es similar a str_replace(), pero con soporte para expresiones regulares.



<?php$text = "Hoy es 15.03.2024, y mañana será 16.03.2024";$pattern = "/(\\d{2})\\.(\\d{2})\\.(\\d{4})/";$replacement = "$3-$2-$1"; // Reordenando las partes de la fecha

echo preg_replace($pattern, $replacement, $text);// Muestra: Hoy es 2024-03-15, y mañana será 2024-03-16?>


preg_split() — Dividir una Cadena

La función preg_split() divide una cadena usando una expresión regular. Esto es más conveniente que explode() cuando los delimitadores pueden ser diferentes.



<?php$text = "manzana, pera; plátano: naranja";$pattern = "/[,;:]/"; // Delimitadores: coma, punto y coma, dos puntos$fruits = preg_split($pattern, $text);

print_r($fruits);// Array ( [0] => manzana [1] => pera [2] => plátano [3] => naranja )?>


2. Metacaracteres y Sintaxis de las Expresiones Regulares



Para usar expresiones regulares de manera efectiva, necesitas entender su sintaxis. Aquí están los metacaracteres básicos:



  • . — cualquier carácter (excepto nueva línea)
  • ^ — inicio de la cadena
  • $ — fin de la cadena
  • * — 0 o más repeticiones
  • + — 1 o más repeticiones
  • ? — 0 o 1 repetición
  • \\d — dígito (0-9)
  • \\w — letra, dígito o guion bajo
  • \\s — carácter de espacio en blanco
  • [abc] — cualquier carácter del conjunto
  • (...) — grupo de captura


Ejemplo: Validación de número de teléfono

<?php$phone = "+7 (123) 456-78-90";$pattern = "/^\\+7\\s\\(\\d{3}\\)\\s\\d{3}-\\d{2}-\\d{2}$/";

if (preg_match($pattern, $phone)) { echo "¡El número de teléfono es válido!";} else { echo "Formato de número de teléfono inválido.";}?>


3. Técnicas Avanzadas y Modificadores



Los modificadores cambian el comportamiento de una expresión regular. Se especifican después de la barra de cierre. Veamos los más útiles:



  • i — búsqueda sin distinción de mayúsculas/minúsculas
  • m — modo multilínea (^ y $ funcionan para cada línea)
  • s — el punto incluye el carácter de nueva línea
  • u — soporte para UTF-8

Blogs

Book Recommendations