La syntaxe de base de la fonction MB_EREG est la suivante:
<span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(pattern, </span><span><span class="hljs-keyword">string</span></span><span>, &regs)
</span></span>Modèle : le schéma des expressions régulières.
String : la chaîne cible qui doit être appariée.
REGS : Il s'agit d'un paramètre facultatif pour stocker les résultats correspondants. Si ce paramètre est fourni, MB_EREG stockera la partie correspondante dans les regs du tableau. L'indice du tableau 0 correspond à l'ensemble du résultat de correspondance, et les indices suivants correspondent au résultat correspondant du sous-basateur.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"AccueillirPHPTutoriel"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"PHP"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Correspondre avec succès\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>); </span><span><span class="hljs-comment">// Sortir le résultat correspondant capturé</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le match a échoué\n"</span></span><span>;
}
</span></span>Dans l'exemple ci-dessus, si la chaîne "Welcome to PHP Tutorial" contient "PHP" , MB_EREG renvoie True et stocke le "PHP" correspondant dans le tableau $ Regs .
La clé pour capturer les résultats de correspondance réside dans le paramètre REGS . Avec ce paramètre, MB_EREG stockera le contenu correspondant un par un et peut capturer les résultats correspondants de plusieurs sous-expressions.
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"C'estPHPetMySQLExemples combinés"</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"(PHP)(et)(MySQL)"</span></span><span>;
</span><span><span class="hljs-variable">$regs</span></span><span> = [];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_ereg</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$regs</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Correspondre avec succès\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$regs</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Le match a échoué\n"</span></span><span>;
}
</span></span>Résultat de sortie:
<span><span>Correspondre avec succès
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => PHPetMySQL
[</span><span><span class="hljs-number">1</span></span><span>] => PHP
[</span><span><span class="hljs-number">2</span></span><span>] => et
[</span><span><span class="hljs-number">3</span></span><span>] => MySQL
)
</span></span>Dans cet exemple, l'expression régulière (PHP) (et) (MySQL) capturera les résultats correspondants de trois sous-bassins, à savoir "PHP" , "et" et "MySQL" . $ Regs [0] enregistre toute la chaîne de correspondance, et les $ REGS [1] , $ REGS [2] et $ Regs [3] enregistrent les résultats correspondants de chaque sous-support.
La syntaxe d'expression régulière utilisée par MB_EREG est similaire aux expressions régulières communes, mais il existe des différences, en particulier lorsqu'ils traitent avec des caractères multi-gytets. Portez une attention particulière à la gamme de personnages d'expressions régulières et aux compétences lors du traitement des caractères chinois.
<span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"^[\x{4e00}-\x{9fa5}]+$"</span></span><span>; </span><span><span class="hljs-comment">// Correspondre uniquement aux caractères chinois</span></span><span>
</span></span>Cette expression régulière ne correspondra que des chaînes contenant des caractères chinois (plage de codage Unicode: \ x {4e00} à \ x {9fa5} ).
Lors de l'utilisation de MB_EREG , le paramètre REGS doit être transmis sous forme de référence, garantissant que le résultat correspondant est capturé. Sinon, le tableau $ Regs ne pourra pas renvoyer de données.
MB_EREG renvoie une valeur booléenne indiquant si la correspondance est réussie. Renvoie True si le match réussit, sinon renvoyez false .
Pour s'assurer que le jeu de caractères multi -yte fonctionne correctement, il est généralement nécessaire de définir le codage de caractères correct avant d'appeler MB_EREG . Vous pouvez utiliser mb_internal_encoding () pour définir le codage:
<span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>Si vous traitez avec un jeu de caractères codé non UTF-8 (tel que GBK ou Shift-Jis), vous devez vous assurer que le codage est correctement défini.
Étant donné que MB_EREG est une fonction optimisée pour les jeux de caractères multi -yte, ses performances peuvent être affectées par les jeux de caractères et les longueurs de chaîne par rapport à la correspondance ordinaire. Par conséquent, il est recommandé de prêter attention à l'optimisation lors du traitement de grandes quantités de données, comme éviter trop d'opérations d'expression régulières.
La fonction MB_EREG nous fournit un outil puissant en PHP pour gérer la correspondance régulière des jeux de caractères multi -yte. En utilisant correctement le paramètre REGS , nous pouvons facilement capturer et traiter les résultats correspondants. Comprendre comment rédiger des expressions régulières, passer des paramètres et définir l'encodage vous aidera à utiliser plus efficacement MB_EREG pour le traitement des chaînes.