Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Выборка 2х строчек из html тегов


Автор: lungdesire 27.8.2015, 20:14
Друзья, всем доброго времени суток. С регулярками у меня всегда были сложности. В своём скрипте делаю GET запрос, ответ от которого сохраняется в переменную $content. В этой переменной почти в самом конце, есть такие строки:
 
<strong class="region">в&nbsp;городе Баймак</strong>.
чуть дальше идёт строка
<strong class="region">в&nbsp;Республике Башкортостан</strong>

Как выбрать в первую переменную Слово "Баймак", а во вторую "Республике Башкортостан"

Буду признателен за любую помощь! Берегите себя ;)

Автор: alezzz 28.8.2015, 09:52
Код

if ($var =~ m#<strong class="region">в&nbsp;(?:городе|посёлке) ([^<]+)</strong>.*?<strong class="region">в&nbsp;([^<]+)</strong>#s){
    print "$1\n$2\n";
}

Примерно так, но при условии что это единственная пара город/республика на страинце. Если список, то найдёт только первую запись. Допишите другие варианты кроме город и посёлок, т.к. названия могут быть с пробелом типа "Набережные челны" и фиг знает как эту часть выбрать по другому.

Автор: lungdesire 29.8.2015, 19:12
с регуляркой что-то не то! Не работает! Вот html для теста: <div class="result">Показано 3&nbsp;ответов <strong class="region">в&nbsp;городе Баймак</strong>. </div><div class="select"> По вашему запросу найдено <a href="http://site.ru/ntl/used/?from=region&search%5Bsection_id%5D=1&search%5Bstate%5D=1&search%5Bperiod%5D=0&search%5Bcustom%5D=1&search%5Bgeo_region%5D=5&show_sales=1">1 309&nbsp;ответов</a>&nbsp;<strong class="region">в&nbsp;Республике Башкортостан</strong>

При подстановке, ничего не показывает(

Автор: lungdesire 30.8.2015, 16:17
Спасибо, немного подправив всё получилось... Удачи всем ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)