Funksjonen preg_filter

Funksjonen preg_filter utfører søk og erstatning i en streng eller en matrise med strenger ved hjelp av et regulært uttrykk. I motsetning til preg_replace, returnerer den kun de elementene der det ble funnet et treff. Den tar det regulære uttrykket som første parameter, erstatningsstrengen som andre parameter, og strengen eller matrisen som skal behandles som tredje parameter. I den fjerde valgfrie parameteren kan du angi et maksimalt antall erstatninger i hvert element (standard er -1, som betyr "uten begrensninger"). I den femte valgfrie parameteren angis variabelen som antallet utførte erstatninger skal skrives til.

Syntaks

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

Eksempel

La oss erstatte alle sifre i strengen med tegnet 'X':

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

Resultat av kjøring av koden:

php'aXbXcX'

Eksempel

La oss behandle en matrise med strenger og erstatte sifre med '#':

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

Resultat av kjøring av koden:

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

Eksempel

La oss demonstrere forskjellen fra preg_replace:

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

Resultat av kjøring av koden:

phpFilter resultat: ['a#', 'b#', 'd#']
Erstatt resultat: ['a#', 'b#', 'c', 'd#']

Se også

  • funksjonen preg_replace,
    som utfører erstatning med regulært uttrykk
  • funksjonen preg_match,
    som sjekker samsvar med regulært uttrykk