Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction prég_grep pour filtrer et faire correspondre les éléments du tableau conformes aux expressions régulières? Analyse des étapes détaillée

Comment utiliser la fonction prég_grep pour filtrer et faire correspondre les éléments du tableau conformes aux expressions régulières? Analyse des étapes détaillée

gitbox 2025-06-19

Preg_grep est une fonction très utile en PHP qui filtre et correspond aux éléments dans un tableau basé sur des expressions régulières. Si vous avez un tableau et que vous souhaitez filtrer les éléments qui correspondent à une règle d'expression régulière, Preg_Grep est un choix très efficace.

Cet article introduira en détail l'utilisation de la fonction Preg_Grep et utilisera des exemples spécifiques pour aider tout le monde à mieux comprendre ses fonctions.

1. Syntaxe de base de la fonction prég_grep

 <span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$input</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
  • $ Pattern : Il s'agit d'une expression régulière, et PHP correspondra aux éléments dans le tableau en fonction de cette régularité.

  • $ entrée : le tableau à filtrer.

  • $ Flags : un paramètre d'indicateur facultatif qui détermine le type de tableau renvoyé. Les drapeaux couramment utilisés sont prég_grep_invert et preg_grep_array .

2. La valeur de retour de la fonction preg_grep

Preg_grep renvoie un nouveau tableau contenant tous les éléments correspondant à l'expression régulière. Si aucun éléments ne correspond à l'expression régulière, un tableau vide est renvoyé.

3. Utilisez des exemples

3.1 Utilisation de base

Supposons que nous ayons un tableau contenant plusieurs cordes. Nous voulons filtrer toutes les chaînes contenant des numéros. Nous pouvons utiliser la fonction preg_grep pour coopérer avec des expressions régulières.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Faire correspondre les chaînes contenant des numéros</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

Dans cet exemple, la fonction prég_grep renvoie deux chaînes contenant des nombres.

3.2 Filtrage inversé à l'aide du drapeau prég_grep_invert

Si vous souhaitez obtenir des éléments qui ne sont pas conformes aux expressions régulières, vous pouvez utiliser le drapeau prég_grep_invert . De cette façon, la fonction renvoie des éléments qui ne correspondent pas à l'expression régulière.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Faire correspondre les chaînes contenant des numéros</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_INVERT);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; date
)
</span></span>

Par preg_grep_invert , une chaîne qui ne contient pas de nombres est renvoyée.

3.3 Utilisez l'indicateur prég_grep_array pour obtenir la clé du tableau

Si vous souhaitez que le résultat retourné conserve les clés du tableau, vous pouvez utiliser l'indicateur prég_grep_array . Ceci est très utile lorsque vous devez conserver l'indice de tableau d'origine.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Faire correspondre les chaînes contenant des numéros</span></span><span>

</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>, PREG_GREP_ARRAY);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; cherry45
)
</span></span>

De cette façon, le tableau retourné contiendra les clés du tableau d'origine.

4. Utilisation avancée: correspondance régulière multiple

Si vous souhaitez appliquer plusieurs règles régulières aux éléments d'un tableau, vous pouvez utiliser plusieurs expressions régulières ensemble.

Par exemple, nous pouvons d'abord faire correspondre tous les éléments contenant des nombres, puis faire correspondre les chaînes avec des longueurs dépassant 6.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$input</span></span><span> = [</span><span><span class="hljs-string">"apple123"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"cherry45"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span>, </span><span><span class="hljs-string">"watermelon321"</span></span><span>];

</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\d+/'</span></span><span>; </span><span><span class="hljs-comment">// Faire correspondre les chaînes contenant des numéros</span></span><span>

</span><span><span class="hljs-comment">// utiliser preg_grep Filtrez des éléments contenant des nombres</span></span><span>
</span><span><span class="hljs-variable">$matched</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$input</span></span><span>);

</span><span><span class="hljs-comment">// Filtrer la longueur est supérieure à6Éléments</span></span><span>
</span><span><span class="hljs-variable">$long_words</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_grep</span></span><span>(</span><span><span class="hljs-string">'/^.{7,}$/'</span></span><span>, </span><span><span class="hljs-variable">$matched</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$long_words</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple123
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; watermelon321
)
</span></span>

Dans cet exemple, filtrez d'abord les éléments contenant des nombres, puis filtrez les résultats une deuxième fois pour découvrir des chaînes avec des longueurs supérieures à 6.

5. Résumé

Preg_grep est une fonction très puissante qui convient au filtrage des éléments dans un tableau basé sur des expressions régulières. En utilisant ses expressions régulières et ses options de drapeau, vous pouvez facilement répondre à une variété de besoins complexes de correspondance et de filtrage. J'espère que l'introduction dans cet article peut vous aider à mieux comprendre l'utilisation de Preg_grep et à améliorer votre efficacité dans la programmation PHP.