Expresiones regulares en PHP con ejemplos: en la práctica

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 con ejemplos: en la práctica



Las expresiones regulares (regex) son una herramienta poderosa para buscar, reemplazar y analizar texto. En PHP se implementan a través del conjunto de funciones PCRE (Perl Compatible Regular Expressions). Sin ellas es difícil imaginar la validación de formularios, el análisis de registros o el reemplazo de patrones en cadenas.



En este artículo analizaremos expresiones regulares en PHP con ejemplos que podrás aplicar de inmediato en tus proyectos. No profundizaremos en teoría — solo práctica, código y escenarios reales.



1. Funciones principales para trabajar con regex en PHP



En PHP hay tres funciones clave que cubren el 95% de las tareas:



  • preg_match() — búsqueda de la primera coincidencia.
  • preg_match_all() — búsqueda de todas las coincidencias.
  • preg_replace() — reemplazo según patrón.
  • preg_split() — división de cadena según patrón.


Todas las funciones requieren tres parámetros: patrón (pattern), cadena (subject) y banderas opcionales.



Ejemplo 1: Validación de email



<?php$email = "user@example.com";$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/";

if (preg_match($pattern, $email)) { echo "Email correcto";} else { echo "Email incorrecto";}?>


Analicemos el patrón: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/

  • ^ — inicio de la cadena.
  • [a-zA-Z0-9._%+-]+ — uno o más caracteres permitidos.
  • @ — literalmente el símbolo @.
  • [a-zA-Z0-9.-]+ — nombre de dominio.
  • \\. — punto (escapado).
  • [a-zA-Z]{2,} — zona de dominio (mínimo 2 letras).
  • $ — final de la cadena.


Ejemplo 2: Extraer todos los enlaces de HTML



<?php$html = '<a href="https://pythonlib.ru">Sitio</a> y <a href="/about">Sobre nosotros</a>';$pattern = '/href="([^"]+)"/';

preg_match_all($pattern, $html, $matches);

print_r($matches[1]); // Mostrará el array de enlaces?>


Aquí ([^"]+) es un grupo de captura que busca todo excepto comillas, dentro del atributo href.



2. Modificadores y su aplicación práctica



Los modificadores cambian el comportamiento de la expresión regular. Se colocan después de la barra de cierre (/).



  • 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 saltos de línea.
  • U — modo perezoso (por defecto es codicioso).
  • u — soporte UTF-8.


Ejemplo 3: Búsqueda de palabra sin distinción de mayúsculas/minúsculas



<?php$text = "PHP es un lenguaje potente. php se usa en todas partes.";$pattern = "/php/i";

preg_match_all($pattern, $text, $matches);echo count($matches[0]); // Mostrará 2?>


Ejemplo 4: Trabajo con cirílico (UTF-8)



<?php$text = "¡Hola, mundo!";$pattern = "/[а-яё]+/ui"; // u — UTF-8, i — sin distinción mayúsculas/minúsculas

preg_match_all($pattern, $text, $matches);print_r($matches[0]); // ['Hola', 'mundo']?>


Sin el modificador u, el cirílico se procesará incorrectamente, porque PHP trata cada byte como un carácter individual.



3. Reemplazo y división de cadenas con expresiones regulares



La función preg_replace() permite reemplazar partes de una cadena según un patrón. Y preg_split() divide una cadena como explode, pero con la posibilidad de usar una expresión regular.



Ejemplo 5: Limpiar texto de etiquetas HTML



<?php$html = "<h1>Título</h1><p>Texto con palabra <b>en negrita</b></p>";$clean = preg_replace("/<[^>]+>/", "", $html);echo $clean; //                

Blogs

Book Recommendations