Función PHP preg_filter()
Expresiones regulares en PHP (PCRE)
preg_filterLa función se utiliza para realizar una búsqueda y reemplazo de expresiones regulares.
Sintaxis
mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
preg_filter() es equivalente apreg_replace() , pero solo devuelve los resultados que coinciden con el objetivo.
Descripción de parámetros:
- $pattern: El patrón a buscar. Puede ser una cadena o un array de cadenas.
- $replacement: La cadena o array de cadenas utilizado para reemplazar.
- $subject: La cadena o array de cadenas en la que se realiza la búsqueda y el reemplazo.
- $limit: Opcional, el número máximo de reemplazos por patrón en cada subject. El valor predeterminado es -1 (ilimitado).
- $count: Opcional, el número de reemplazos realizados.
Ejemplo
Ejemplo que compara preg_filter() y preg_replace()
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');
echo "Valor de retorno de preg_filter:\n";
print_r(preg_filter($pattern, $replace, $subject));
echo "Valor de retorno de preg_replace:\n";
print_r(preg_replace($pattern, $replace, $subject));
El resultado de la ejecución es el siguiente:
preg_filter 返回值:
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[7] => A:4
)
preg_replace 返回值:
Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[5] => A
[6] => B
[7] => A:4
)
Se puede ver que preg_filter solo devuelve los resultados coincidentes e ignora los que no coinciden, mientras que preg_replace también devuelve los elementos no coincidentes 'A' y 'B'.
Otras extensiones