Position actuelle: Accueil> Derniers articles> Comment traiter efficacement les données du tableau en combinaison avec les fonctions preg_filter et exploiter?

Comment traiter efficacement les données du tableau en combinaison avec les fonctions preg_filter et exploiter?

gitbox 2025-09-18

1. Introduction aux fonctions prég_filter et exploitation


  • PREG_FILTER est une fonction d'expression régulière que le modèle correspond aux chaînes d'entrée et remplace les pièces correspondantes. Contrairement à d'autres fonctions d'expression régulières, Preg_Filter renvoie le résultat remplacé, plutôt que de simplement faire correspondre le contenu comme preg_match .

     <span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$replacement</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>);
    </span></span>
    • $ motif : modèle d'expression régulière.

    • $ Remplacement : chaîne remplacée.

    • $ Sujet : la chaîne ou le tableau à laquelle l'opération est requise.

  • Fonction d'exploitation :
    Explose est utilisé pour diviser une chaîne en parties, selon le séparateur donné. Il renvoie un tableau, chaque élément est une sous-chaîne divisée.

     <span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-variable">$delimiter</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
    </span></span>
    • $ Delimiter : Demiter.

    • $ String : la chaîne à diviser.

2. Scénarios d'application de combinaison de fonctions prég_filter et d'exploitation

Dans le développement réel, les scénarios utilisés dans la combinaison des fonctions prég_filter et d'exploitation se concentrent principalement sur les chaînes de segmentation tout en utilisant des expressions régulières pour filtrer ou remplacer les pièces inutiles. Voici plusieurs scénarios d'application courants:

2.1 chaînes propres et divisées composées de plusieurs délimiteurs

Supposons que nous ayons une chaîne séparée par différents symboles (comme les virgules, les demi-colons, etc.) et que nous voulons en supprimer certaines parties non valides et les diviser en un tableau. À l'heure actuelle, nous pouvons d'abord utiliser Preg_Filter pour filtrer les pièces inutiles, puis utiliser la fonction d'exploit pour se séparer.

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"apple, ,banana;,,orange;grape"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/\s*[,;]\s*/'</span></span><span>; </span><span><span class="hljs-comment">// Des expressions régulières suppriment les séparateurs inutiles</span></span><span>

</span><span><span class="hljs-comment">// utiliserpreg_filterNettoyer les espaces et les séparateurs redondants</span></span><span>
</span><span><span class="hljs-variable">$cleanedString</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-string">','</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-variable">$items</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">','</span></span><span>, </span><span><span class="hljs-variable">$cleanedString</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>);
</span></span>

Résultat de sortie:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; orange
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; grape
)
</span></span>

Dans cet exemple, Preg_Filter supprime d'abord les espaces inutiles et les séparateurs redondants (tels que plusieurs virgules ou demi-colons) de la chaîne, puis divise la chaîne nettoyée dans un tableau via l'exploit .

2.2 Fractionnement complexe basé sur des expressions régulières

Parfois, nous devons nous diviser selon un schéma complexe. PREG_FILTER peut être utilisé pour prétraiter les chaînes, puis utiliser l'exploit pour une fractionnement simple. Cette méthode est très adaptée à certains formats de chaîne complexes.

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"item1:apple, item2:banana; item3:orange"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/[;\s]+/'</span></span><span>;  </span><span><span class="hljs-comment">// Faire correspondre les demi-colons ou les personnages blancs d&#39;espace</span></span><span>

</span><span><span class="hljs-comment">// utiliserpreg_filterRetirer les espaces et séparateurs inutiles</span></span><span>
</span><span><span class="hljs-variable">$cleanedString</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_filter</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-variable">$items</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(</span><span><span class="hljs-string">' '</span></span><span>, </span><span><span class="hljs-variable">$cleanedString</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$items</span></span><span>);
</span></span>

Résultat de sortie:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; </span><span><span class="hljs-attr">item1</span></span><span>:apple
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-attr">item2</span></span><span>:banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; </span><span><span class="hljs-attr">item3</span></span><span>:orange
)
</span></span>

Ici, Preg_Filter est utilisé pour remplacer les délimiteurs (tels que les demi-colons et les caractères d'espace blanc), puis diviser la chaîne en un tableau avec des espaces sous forme de délimiteurs via la fonction d'exploitation .

3. Avantages de l'utilisation combinée

En combinant les fonctions Preg_Filter et Exploit , la puissance des expressions régulières peut être entièrement utilisée lors du traitement des chaînes, tout en évitant plusieurs appels vers des correspondances régulières. Voici quelques-uns des avantages de cette approche:

  • Nettoyez les données : utilisez Preg_Filter pour filtrer les pièces inutiles et réduire l'impact des caractères irréguliers ou des erreurs de format.

  • Amélioration de la lisibilité : le code est concis et la logique est claire. Nettoyez d'abord les données, puis divisez-les, ce qui est plus intuitif.

  • Amélioration de l'efficacité : Dans certains cas, plusieurs opérations régulières sont évitées et la vitesse de traitement est améliorée.

4. Résumé

L'utilisation de fonctions prég_filter et d'exploitation peut aider les développeurs à traiter plus efficacement les données complexes de chaînes et de tableau. Grâce aux fonctions puissantes des expressions régulières, nous pouvons filtrer les pièces excessives pendant le processus de traitement des données, garantissant que les données divisées sont plus propres et plus efficaces. La maîtrise de la combinaison de ces deux fournira de puissantes capacités de traitement des données pour le développement de PHP.