"Неизвестный модификатор 'g' in ..." при использовании preg_match в PHP? - PullRequest
72 голосов
/ 26 августа 2010

Это регулярное выражение, которое я пытаюсь использовать:

/^(\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 Ответ

140 голосов
/ 26 августа 2010

Модификатор g для preg_match отсутствует. Вместо этого вы должны использовать функцию 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", ....)
...