Función preg_grep

La función preg_grep devuelve un array de elementos que coinciden con la expresión regular dada. El primer parámetro de la función acepta una cadena con la expresión regular, y el segundo - el array para buscar. El tercer parámetro opcional determina si se deben devolver los elementos que no coinciden con la expresión regular.

Sintaxis

phppreg_grep(pattern, array, [flags]);

Banderas

Bandera Descripción
PREG_GREP_INVERT Invierte el resultado - devuelve los elementos que NO coinciden con el patrón.
PREG_GREP_NO_ERROR No genera error con expresión regular incorrecta (PHP 8.1+).

Ejemplo

Encontremos todos los elementos del array que comienzan con un dígito:

php<?php
  $arr = ['a1', '2b', 'c3', '4d', 'e5'];
  $res = preg_grep('/^\d/', $arr);
  var_dump($res);
?>

Resultado de la ejecución del código:

php['2b', '4d']

Ejemplo

Usemos la bandera PREG_GREP_INVERT para obtener los elementos que NO coinciden con la expresión regular:

php<?php
  $arr = ['a1', '2b', 'c3', '4d', 'e5'];
  $res = preg_grep('/^\d/', $arr, PREG_GREP_INVERT);
  var_dump($res);
?>

Resultado de la ejecución del código:

php['a1', 'c3', 'e5']

Ejemplo

Encontremos todos los elementos del array que contienen solo dígitos:

php<?php
  $arr = ['123', 'abc', '45', 'de', '678'];
  $res = preg_grep('/^\d+$/', $arr);
  var_dump($res);
?>

Resultado de la ejecución del código:

php['123', '45', '678']

Ver también

  • la función preg_match,
    que realiza la verificación de coincidencia con una expresión regular
  • la función preg_replace,
    que realiza búsqueda y reemplazo mediante expresión regular