Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: vaita-c от 24 Сентября 2004, 14:24:03
-
Привет.
Хотелосьбы находить ссылки в html-документе, ссылки вида:
sometext(возможно с тегами)возможны тегиtext(возможно с тегами).
Сейчас используется: (php)
$rExp = "{<\\s*a.*href=\\s*[\'\\"](.*)[\'\\"].*>(.*).*<\\s*p.*>(.*)}sUi";
но на функции preg_match_all() сыпется, говорит что превышен лимит 30 сек.
Подскажите в чем ошибка, я предполагаю что проблема в "жадности".
Спасибо.
Виталий Щ.
-
Похожие темы:
http://forums.webscript.ru/showthread.php?s=&threadid=16583&msgnum=7
http://forums.webscript.ru/showthread.php?s=&threadid=15278&msgnum=5
Если не понимаешь про что там написано, то неплохо было бы еще привести пример текста по которому идет поиск. Легче будет помочь...
-
Пример текста для поиска:
phreak
-
Забудь про жадность :) В первую очередь надо что-то почитать... например,
http://www.webscript.ru/stories/04/06/25/6006996 - регулярные выражения для новичков.
http://www.webscript.ru/stories/04/06/29/9711672 - регулярные выражения для продвинутых новичков.
Во вторых, касательно твоей проблемы применяем позитивную опережающуюю проверку:
preg_match_all("/]*>(.*)(?=<\\/a>)/i", $text, $match);
надеюсь, я дал направление, дальше сам завершишь...