Подтвердить что ты не робот

"Неизвестный модификатор" g "в..." при использовании preg_match в PHP?

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

/^(\w|\.|-)[email protected](\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

Может кто-нибудь объяснить, что не так, и почему это работает на этом сайте, а не в моем коде?

4b9b3361

Ответ 1

Нет модификатора g для preg_match. Вместо этого вы должны использовать функцию preg_match_all.

Итак, вместо:

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

использование:

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

Ответ 2

Мне нужно регулярное выражение, чтобы вернуть все якоря гиперссылки в HTML, используя PHP. Я использую следующую строку, и она возвращает только одно совпадение. В полном HTML есть много HREF, которые соответствуют.

preg_match_all('/(?:<a href=.*">)(.*?)(?:<\/a>)/', $input, $tmp);

Кто-нибудь может мне помочь?

С наилучшими пожеланиями, Gustavo Ulyssea