Maison > Article > développement back-end > Pourquoi est-ce que j'obtiens l'erreur « Modificateur inconnu 'g' dans preg_match » ?
Dévoilement du mystère derrière le "Modificateur inconnu 'g' dans preg_match"
Lorsque vous travaillez avec des expressions régulières en PHP à l'aide de la fonction preg_match, vous peut rencontrer un message d'erreur indiquant "Modificateur inconnu 'g'". Ce problème concerne une syntaxe incorrecte dans l'expression régulière que vous utilisez.
Le problème
L'expression régulière que vous essayez d'utiliser contient le « g » modificateur (par exemple, /regex/gim) qui n'est pas reconnu par la fonction preg_match. Bien que certains sites Web de test d'expressions régulières en ligne puissent autoriser le modificateur « g », PHP ne le prend pas en charge dans ce contexte.
La solution
Pour résoudre ce problème, vous Vous pouvez utiliser la fonction preg_match_all à la place, qui prend en charge le modificateur 'g' pour faire correspondre plusieurs occurrences d'un modèle. Le modificateur 'g' introduit une recherche globale, indiquant que la fonction doit parcourir toute la chaîne et correspondre à toutes les occurrences du modèle.
Exemple
Au lieu de :
preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)
Utilisation :
preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
En remplaçant le modificateur 'g' par le modificateur 'm' dans la fonction preg_match_all, votre code fonctionnera comme prévu, correspondant à plusieurs occurrences du modèle d'adresse e-mail spécifié dans la chaîne d'entrée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!