“在PHP中使用preg_match时未知修饰符'g'in …”

这是我试图使用的正则expression式:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim 

我在这个网站上find了它,当我在那里尝试的时候它效果很好。 但是,只要我把它放在我的代码中,我就会得到这样的信息:

 Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22 

任何人都可以解释什么是错的,为什么它在网站上,而不是在我的代码?

preg_match没有修饰符g 。 相反,你必须使用preg_match_all函数。

所以,而不是:

 preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....) 

使用:

 preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)