Fonction preg_filter

La fonction preg_filter effectue une recherche et un remplacement dans une chaîne ou un tableau de chaînes par une expression régulière. Contrairement à preg_replace, elle ne renvoie que les éléments où une correspondance a été trouvée. Le premier paramètre accepte l'expression régulière, le second - la chaîne de remplacement, le troisième - la chaîne ou le tableau à traiter. Le quatrième paramètre optionnel permet de définir le nombre maximum de remplacements dans chaque élément (par défaut -1, ce qui signifie "sans limite"). Le cinquième paramètre optionnel spécifie la variable dans laquelle sera enregistré le nombre de remplacements effectués.

Syntaxe

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

Exemple

Remplaçons tous les chiffres dans la chaîne par le symbole 'X' :

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

Résultat de l'exécution du code :

php'aXbXcX'

Exemple

Traitions un tableau de chaînes, en remplaçant les chiffres par '#' :

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

Résultat de l'exécution du code :

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

Exemple

Démontrons la différence avec 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);
?>

Résultat de l'exécution du code :

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

Voir aussi

  • la fonction preg_replace,
    qui effectue un remplacement par une expression régulière
  • la fonction preg_match,
    qui vérifie la correspondance avec une expression régulière