Esta es la expresión regular que estoy tratando de usar:
/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
Lo encontré en este sitio y funciona muy bien cuando lo pruebo. Pero tan pronto como lo coloco en mi código, aparece este mensaje:
Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22
¿Alguien puede explicar qué está mal y por qué funciona en ese sitio web y no en mi código?
Respuestas:
No hay ningún modificador
g
parapreg_match
. En su lugar, debes usar lapreg_match_all
función.Entonces en lugar de:
preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)
utilizar:
preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
fuente