2010-08-26 45 views
58

这是我想要使用正则表达式:“在PHP中使用preg_match时未知修饰符'g'in ...”?

/^(\w|\.|-)[email protected](\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim 

我发现它this site,当我尝试它有它的伟大工程。但只要我把它放在我的代码,我得到这个消息:

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

谁能解释什么是错的,以及为什么它的工作在该网站,而不是在我的代码?

+1

我们可以给你更好的帮助,如果我们确切地知道你正在尝试用正则表达式做。无论如何,你需要更好的帮助 - 或者正则表达式。在该网站上可用的所有写得不好的电子邮件正则表达式中,您可能会选择最糟糕的一个。 :/ – 2010-08-26 20:08:07

+2

仅供参考,您的正则表达式将验证确定这些类型的邮件:“-.-。-.--。@ - some--domain--.com”,这些类型的VALID邮件不会验证:“info @ subdomain.domain.com”。最后但并非最不重要\ w非常危险,因为PHP preg使用Perl兼容正则表达式而不使用Javascript。如果PHP运行在美国/英国本地化的服务器上\ w会匹配重音字母,所以你会匹配“àèìòù@domain.com”有一个有效的邮件。请阅读此处了解更多详情:http://it.php.net/manual/en/function.preg-replace.php#92443 – 2010-08-26 20:30:32

回答

相关问题