AZJIO
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Weinaum Можно попробовать типа поиск необязательных вложенных div, типа (?:/s*?<div>.+?</div>/s*?)? если только двойные вложенности есть (?:/s*?<div>.+?(?:/s*?<div>.+?</div>/s*?)?.+?</div>/s*?)? если есть тройные вложенности <div>.+?(?:/s*?<div>.+?(?:/s*?<div>.+?</div>/s*?)?.+?</div>/s*?)?.+?</div> Это я как идею предлагаю, а не как решённый вариант. Кстати в регулярках есть рекурсия, может это про то? Но я бы с учётом знания авотит писал бы на нём. Смысл в следующем, находишь <div>, ставишь счётчик равным 1, после него ищешь <div> или </div>, если <div> то увеличиваешь счётчик на 1, если </div>, то уменьшаешь счётчик на 1. Как только счётчик равен нулю, то это нужный </div> нужного уровня и удаляешь текст между позициями найденного. Вот например я чистил накаченные с сайта веб-страницы оставляя только полезное содержимое, удаляя всякие меню, шапки, реквизиты, рекламные блоки, зная что они для этого сайта одинаковые. Подробнее | Всего записей: 4567 | Зарегистр. 03-05-2006 | Отправлено: 08:02 08-05-2017 | Исправлено: AZJIO, 08:32 08-05-2017 |
|