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:
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 incluyenPREG_PATTERN_ORDER(predeterminada, agrupa los resultados por patrón) yPREG_SET_ORDER(agrupa los resultados por ocurrencia).PREG_OFFSET_CAPTUREañ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
$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?