Ограничить простую регулярку

Ragnarok
На сайте с 25.06.2010
Offline
226
378

В общем, нужно регуляркой выбрать в коде всё что находится между <div class="divclass"> и первым следующим <div> (могут быть переносы строк, теги и любые другие символы кроме <div>)

такая конструкция:

preg_match_all('#<div class="divclass">(.*)<div>#smi',$result,$content);

выбирает до последнего <div> в тексте, а их много. вот

//TODO: перестать откладывать на потом
eN_Slon
На сайте с 13.02.2007
Offline
159
#1

preg_match_all('#<div class="divclass">(.*?)<div>#smi',$result,$content);

Парсинг, граббинг, автоматизация всего что вы можете сделать в браузере(и не только) сами. Любое кол-во, любые защиты.
bay_ebook
На сайте с 28.05.2010
Offline
111
#2
Ragnarok:
В общем, нужно регуляркой выбрать в коде всё что находится между <div class="divclass"> и первым следующим <div> (могут быть переносы строк, теги и любые другие символы кроме <div>)
такая конструкция:
preg_match_all('#<div class="divclass">(.*)<div>#smi',$result,$content);
выбирает до последнего <div> в тексте, а их много. вот

Вообще-то это одно из стандартных заданий по регуляркам :)


preg_match_all("/<div class\=\"divclass\">(.*)<div/Uis", $str, $rezult);
Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
TF-Studio
На сайте с 17.08.2010
Offline
334
#3

preg_match_all('|<div class="divclass">(.*)<div>|isU', $html, $res);

---------- Добавлено 25.12.2012 в 02:59 ----------

о блин.

это - рекорд ))

3 поста сразу в этом разделе )

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
Ragnarok
На сайте с 25.06.2010
Offline
226
#4

eN_Slon, спасибо!

вот уже нашёл в справочнике по Вашей подсказке:

Здесь же скажу про еще одно значения символа ?. Метасимвол звездочка по умолчанию жадный (и другие тоже). Это значит, что в нашем примере вот этой части '.*r' будет соответствовать, например, подстрока asdrfsrsfdr. Как видно, до последней буквы r в нее попало еще две. Вот эту жадность можно выключить. Т.е. шаблон станет соответствовать только подстроке asdr. До первого r. Для этого надо в до того места где необходимо отключить жадность поставит модификатор (?U). Вот еще одно применение символам ? и ().

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий