Функция preg_filter

La función preg_filter realiza búsqueda y reemplazo en una cadena o array de cadenas mediante una expresión regular. A diferencia de preg_replace, devuelve solo aquellos elementos en los que se encontró una coincidencia. El primer parámetro acepta la expresión regular, el segundo - la cadena de reemplazo, el tercero - la cadena o array a procesar. En el cuarto parámetro opcional se puede establecer el número máximo de reemplazos en cada elemento (por defecto -1, lo que significa "sin límites"). En el quinto parámetro opcional se especifica la variable en la que se guardará el número de reemplazos realizados.

Sintaxis

phppreg_filter(pattern, replacement, subject, [limit = -1], [count]);

Ejemplo

Reemplacemos todos los dígitos en la cadena por el símbolo 'X':

php<?php
  $res = preg_filter('/\d/', 'X', 'a1b2c3');
  var_dump($res);
?>

Resultado de ejecutar el código:

php'aXbXcX'

Ejemplo

Procesemos un array de cadenas, reemplazando dígitos por '#':

php<?php
  $res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
  var_dump($res);
?>

Resultado de ejecutar el código:

php['a#', 'b#', 'd#']

Ejemplo

Demostremos la diferencia con preg_replace:

php<?php
  $input = ['a1', 'b2', 'c', 'd4'];
  $res_filter = preg_filter('/\d/', '#', $input);
  $res_replace = preg_replace('/\d/', '#', $input);
  echo "Filter result: ";
  var_dump($res_filter);
  echo "Replace result: ";
  var_dump($res_replace);
?>

Resultado de ejecutar el código:

phpFilter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']

Ver también

  • la función preg_replace,
    que realiza reemplazo mediante expresión regular
  • la función preg_match,
    que verifica coincidencia con una expresión regular