Résolution du "Modificateur inconnu 'g' dans preg_match en PHP"
En explorant les subtilités des expressions régulières, vous avez peut-être rencontré une erreur message indiquant "Modificateur inconnu 'g' dans..." lors de l'utilisation de preg_match. Ce problème survient lorsque vous tentez d'utiliser le modificateur « g » dans votre modèle d'expression régulière. Cependant, il n'y a pas de modificateur 'g' dans preg_match.
Pour résoudre ce problème, vous devez plutôt passer à la fonction preg_match_all. Contrairement à preg_match, qui recherche la première occurrence du modèle et renvoie une valeur booléenne, preg_match_all recherche toutes les occurrences du modèle et renvoie un tableau de correspondances.
Modèle Regex correctement modifié
Votre modèle d'expression régulière d'origine est :
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
Pour utiliser ce modèle avec preg_match_all, modifiez-le comme suit :
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im
Code révisé
Remplacez votre appel preg_match d'origine par ce qui suit :
preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
En effectuant ce simple ajustement, vous pouvez éliminer l'erreur "'g' modificateur non pris en charge" et traiter correctement plusieurs occurrences du modèle dans votre chaîne.
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!