Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens l'erreur « Modificateur inconnu 'g' dans preg_match » ?

Pourquoi est-ce que j'obtiens l'erreur « Modificateur inconnu 'g' dans preg_match » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-11 11:50:03410parcourir

Why Am I Getting the

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn