0Pricing
PHP Academy · Lección

Coincidencias con preg_match

Pruebe cadenas con patrones y capture grupos.

Coincidencias con preg_match es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

Firma de preg_match()

preg_match($pattern, $subject, &$matches) devuelve 1 si el patrón coincide, 0 si no coincide o false si se produce un error.

Prueba de coincidencia sencilla

Use preg_match como una prueba booleana: el valor de retorno 1 significa que se encontró una coincidencia.

<?php
$email = "user@example.com";
if (preg_match('/\w+@\w+\.\w+/', $email)) {
    echo "Looks like an email";
}

Grupos de captura con $matches

$matches[0] es la coincidencia completa; $matches[1], $matches[2]... son los grupos de captura.

<?php
preg_match('/^(\w+)\s(\w+)$/', "John Smith", $m);
echo $m[1]; // "John"
echo $m[2]; // "Smith"

Capturas con nombre

Use (?P<name>...) para crear grupos de captura con nombre; se accede a ellos como $matches["name"].

<?php
preg_match('/(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})/',
           '2025-06-15', $m);
echo $m['year'];  // 2025

Parámetro de desplazamiento

El cuarto parámetro especifica en qué posición de la cadena debe comenzar la coincidencia (desplazamiento en bytes).

<?php
preg_match('/\d+/', 'abc123def456', $m, 0, 3);
echo $m[0]; // "123"

PREG_OFFSET_CAPTURE

Obtenga tanto el valor de la coincidencia como su desplazamiento en bytes.

<?php
preg_match('/\d+/', "price: 42 USD", $m, PREG_OFFSET_CAPTURE);
echo $m[0][0]; // "42"
echo $m[0][1]; // 7 (byte offset)

preg_match_all()

preg_match_all() encuentra todas las coincidencias y devuelve el número total.

<?php
$html = '<a href="a.com">A</a> <a href="b.com">B</a>';
preg_match_all('/<a href="([^"]+)">/', $html, $m);
print_r($m[1]); // ["a.com", "b.com"]

Ejemplo de validación de correo electrónico

Una expresión regular práctica para correos electrónicos:

<?php
function isEmail(string $s): bool {
    return (bool) preg_match(
        '/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/',
        $s
    );
}

Validación de teléfonos

Valide números de teléfono internacionales:

<?php
preg_match('/^\+?[1-9]\d{7,14}$/', '+1234567890', $m);

Gestión de errores

Si el patrón no es válido, preg_match() devuelve false. Compruébelo con === false y use preg_last_error() para obtener detalles.

Consejo de rendimiento

PHP almacena internamente en caché los patrones PCRE compilados; si usa la misma expresión regular en un bucle, no necesita realizar pasos adicionales.

Cuándo no usar expresiones regulares

Para datos estructurados, PHP ofrece funciones específicas: filter_var(FILTER_VALIDATE_EMAIL), parse_url(); prefiera estas opciones a una expresión regular escrita manualmente.

Comprobación rápida

¿Qué contiene $matches[0] después de ejecutar preg_match?

Preguntas frecuentes

¿La lección «Coincidencias con preg_match» es gratis?

Sí — el texto completo de «Coincidencias con preg_match» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Coincidencias con preg_match»?

Pruebe cadenas con patrones y capture grupos. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Coincidencias con preg_match»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos de la sintaxis de expresiones regulares
  2. Coincidencias con preg_match
  3. Sustitución de texto con preg_replace
  4. División y patrones prácticos
← Volver a PHP Academy