Saltar al contenido

preg_match_all()

Introducción

En PHP, las expresiones regulares son esenciales para buscar y manipular cadenas de texto. La función preg_match_all() busca todas las ocurrencias de un patrón en una cadena de texto y devuelve el número total de coincidencias. Este artículo explica cómo utilizarla de manera efectiva.

Comprender la función preg_match_all()

La función preg_match_all() busca todas las ocurrencias de un patrón de expresión regular en una cadena de texto. Devuelve el número de coincidencias encontradas (o false en caso de error) y llena el array $matches. La sintaxis es:

php
preg_match_all($pattern, $subject, &$matches, $flags = 0, $offset = 0);
  • $pattern: El patrón de expresión regular.
  • $subject: La cadena de texto a buscar.
  • $matches: Un array que se llena con las coincidencias encontradas.
  • $flags: Opcional. Modifica el comportamiento de la búsqueda. Las banderas comunes incluyen PREG_PATTERN_ORDER (predeterminada, agrupa los resultados por patrón) y PREG_SET_ORDER (agrupa los resultados por ocurrencia). PREG_OFFSET_CAPTURE añade el desplazamiento en bytes de cada coincidencia.
  • $offset: Opcional. Especifica la posición inicial en la cadena de texto.

Ejemplo de uso

El siguiente ejemplo demuestra los grupos de captura y cómo se estructura el array $matches:

php
<?php

$pattern = '/([A-Z][a-z]+) (\d+)/';
$subject = 'Alice 25 Bob 30';

preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
  echo "Name: {$match[1]}, Age: {$match[2]}\n";
}

En este ejemplo, el patrón utiliza grupos de captura () para extraer nombres y edades. Con PREG_SET_ORDER, $matches se indexa por ocurrencia de coincidencia, por lo que $match[0] contiene la coincidencia completa, $match[1] contiene el primer grupo (nombre) y $match[2] contiene el segundo grupo (edad). Sin grupos de captura, $matches[0] contiene todas las coincidencias completas y no se crean índices de grupo adicionales.

Conclusión

La función preg_match_all() es esencial para encontrar todas las coincidencias de un patrón en cadenas de PHP. Permite a los desarrolladores extraer y manipular datos de manera eficiente. Esta visión general cubre su uso principal y la estructura del array. Para más preguntas, consulte la documentación oficial de PHP.

Práctica

¿Cuál es el propósito de la función preg_match_all() en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.