Fonction preg_grep

La fonction preg_grep renvoie un tableau des éléments qui correspondent à l'expression régulière donnée. Le premier paramètre de la fonction accepte une chaîne avec l'expression régulière, et le second - le tableau à rechercher. Le troisième paramètre facultatif détermine s'il faut renvoyer les éléments qui ne correspondent pas à l'expression régulière.

Syntaxe

phppreg_grep(pattern, array, [flags]);

Drapeaux

Drapeau Description
PREG_GREP_INVERT Inverse le résultat - renvoie les éléments qui NE correspondent PAS au motif.
PREG_GREP_NO_ERROR Ne génère pas d'erreur en cas d'expression régulière incorrecte (PHP 8.1+).

Exemple

Trouvons tous les éléments du tableau qui commencent par un chiffre :

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

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

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

Exemple

Utilisons le drapeau PREG_GREP_INVERT pour obtenir les éléments qui NE correspondent PAS à l'expression régulière :

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

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

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

Exemple

Trouvons tous les éléments du tableau contenant uniquement des chiffres :

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

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

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

Voir aussi

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