"Неизвестный модификатор" 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
Может кто-нибудь объяснить, что не так, и почему это работает на этом сайте, а не в моем коде?
Ответы
Ответ 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