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

2022-08-30 07:12:09

这是我尝试使用的正则表达式:

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

在这个网站上找到了它,当我在那里尝试它时,它效果很好。但是一旦我把它放在我的代码中,我就会收到以下消息:

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

任何人都可以解释出了什么问题,以及为什么它在这个网站上工作,而不是在我的代码中?


答案 1

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

因此,而不是:

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

用:

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

答案 2

推荐