[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить регулярное выражение
yamarsel
Есть переменная $text, в которая представляет из себя кусок HTML-кода

В данном коде есть определенное количество ссылок следующего вида:

<h4><a href="http://domain.ru/category/04/552/2013/843603.shtml" class="black">
<h4><a href="http://domain.ru/category/04502/2013/8603.shtml" class="black">
<h4><a href="http://domain.ru/category/04/2013/603.shtml" class="black">
<h4><a href="http://domain.ru/category/04/02/34/83.shtml" class="black">

У всех ссылок общая часть это начало <h4><a href="http://domain.ru/category и конец " class="black">, серединка соответственно отличается.

Помогите, пожалуйста, как написать регулярное выражение для preg_match_all, чтобы найти в переменной $text все ссылки данного вида?

preg_match_all('/(?<=\<h4\>\<a href\=\")([\w\/\:]+)(?=\")/',$text,$res);


Вот мой вариант, но он почему-то не хочет работать, ничего не находит...
Игорь_Vasinsky
$text = <<<EOL
<h4><a href="http://domain.ru/category/04/552/2013/843603.shtml" class="black">
<h4><a href="http://domain.ru/category/04502/2013/8603.shtml" class="black">
<h4><a href="http://domain.ru/category/04/2013/603.shtml" class="black">
<h4><a href="http://domain.ru/category/04/02/34/83.shtml" class="black">

EOL;

preg_match_all("#http://domain.ru/category/(.*)\" class=\"black\"#iusU", $text, $matches);

echo '<pre>' . print_r($matches, 1) . '</pre>';


Array
(
[0] => Array
(
[0] => http://domain.ru/category/04/552/2013/843603.shtml" class="black"
[1] => http://domain.ru/category/04502/2013/8603.shtml" class="black"
[2] => http://domain.ru/category/04/2013/603.shtml" class="black"
[3] => http://domain.ru/category/04/02/34/83.shtml" class="black"
)

[1] => Array
(
[0] => 04/552/2013/843603.shtml
[1] => 04502/2013/8603.shtml
[2] => 04/2013/603.shtml
[3] => 04/02/34/83.shtml
)

)


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
yamarsel
$text = <<<EOL

Экономика </div>
<h2><a href="http://top.rbc.ru/economics/12/02/2013/844853.shtml" class="black">Фондовые торги в РФ завершились без определенной динамики </a></h2>
<div class="first-news">
<div class="article-side">
<a href="http://top.rbc.ru/economics/12/02/2013/844853.shtml">
<img height="200" width="250" alt="Фондовые торги в РФ завершились без определенной динамики " title="Фондовые торги в РФ завершились без определенной динамики " src="http://pics.top.rbc.ru/top_pics/uniora/94/1360681684_0394.250x200.jpeg" class="pic">
</a>
</div>
<p>
Торговая сессия на российском фондовом рынке завершилась разнонаправленным движением основных индексов. ММВБ опустился на 0,25%, закрепившись на отметке 1512,03 пункта. Индекс РТС практически не изменился к концу торговой сессии, составив 1582,35 пункта. Объем торгов по итогам дня составил 451,8 млрд руб.</p><p>Торги на отечественном рынке акций проходили сегодня без особого энтузиазма в отсутствие новостных поводов и на фоне ожидания выступления президента США Барака Обамы, сообщила аналитик ГК "АЛОР" Светлана Корзенева. <a href="http://top.rbc.ru/economics/12/02/2013/844853.shtml" class="read-more">далее</a>
</p>
</div>
<div class="news-list-wrapper">
<div class="news-item first">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844850.shtml" class="black">Инфляция в РФ составит 6% по итогам 2013г.</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844850.shtml">
<img height="160" width="200" alt="Инфляция в РФ составит 6% по итогам 2013г." title="Инфляция в РФ составит 6% по итогам 2013г." src="http://pics.top.rbc.ru/top_pics/uniora/10/1360681307_0110.200x160.jpeg">
</a>
</div>
<p>Инфляция в России составит около 6% по итогам 2013г., сообщил заместитель главы Министерства экономического развития (МЭР) РФ Андрей Клепач. "У нас оценка годовая будет ближе к 6%", - сказал он.</p><p>В соответствии с официальным прогнозом МЭР, инфляция в РФ составит 5-6% в 2013г. </p><p> <a href="http://top.rbc.ru/economics/12/02/2013/844850.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
<div class="news-item">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844840.shtml" class="black">Страны G7 выступили за мир без валютных войн</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844840.shtml">
<img height="160" width="200" alt="Страны G7 выступили за мир без валютных войн" title="Страны G7 выступили за мир без валютных войн" src="http://pics.top.rbc.ru/top_pics/uniora/83/1360676406_0283.200x160.jpeg">
</a>
</div>
<p>Группа семи промышленно развитых стран (G7) подтвердила приверженность рыночным валютным курсам, тем самым заверив свою позицию о неприемлемости международных "валютных войн".</p><p>Сегодня министры финансов стран G7 обнародовали специальное заявление, направленное на ослабление напряженности вокруг проблемы обменных курсов.
<a href="http://top.rbc.ru/economics/12/02/2013/844840.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
</div>
<div class="news-list-wrapper">
<div class="news-item first">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844811.shtml" class="black">Из-за "серой" сдачи квартир в аренду Москва теряет 5 млрд руб. в год</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844811.shtml">
<img height="160" width="200" alt="Из-за "серой" сдачи квартир в аренду Москва теряет 5 млрд руб. в год" title="Из-за "серой" сдачи квартир в аренду Москва теряет 5 млрд руб. в год" src="http://pics.top.rbc.ru/top_pics/uniora/09/1360669650_0309.200x160.jpeg">
</a>
</div>
<p>Москва ежегодно теряет до 5 млрд руб. из-за "серой" сдачи квартир в аренду, сообщил сегодня на пресс-конференции заместитель мэра столицы по вопросам экономической политики Андрей Шаронов.</p><p>По подсчетам чиновников, ежегодно в городе сдается около 300 тыс. квартир. При этом подоходный налог от сдачи жилья в 2011г. заплатили 7,5 тыс. человек, в 2012г. - 15 тыс. арендодателей.
<a href="http://top.rbc.ru/economics/12/02/2013/844811.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
<div class="news-item">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844806.shtml" class="black">НОВАТЭК: Отмена монополии Газпрома будет полезна для газовой отрасли</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844806.shtml">
<img height="160" width="200" alt="НОВАТЭК: Отмена монополии Газпрома будет полезна для газовой отрасли" title="НОВАТЭК: Отмена монополии Газпрома будет полезна для газовой отрасли" src="http://pics.top.rbc.ru/top_pics/uniora/40/1360668151_0540.200x160.jpeg">
</a>
</div>
<p>Руководство второго по величине производителя газа в России ОАО "НОВАТЭК" вновь призывает к отмене монополии Газпрома на экспорт сжиженного природного газа (СПГ). Как заявил в интервью немецким СМИ председатель правления компании Леонид Михельсон, разрешение на прямой экспорт СПГ НОВАТЭКом "облегчит финансирование гигантского проекта "Ямал СПГ" и уменьшит риски". </p><p>"Положительное решение будет очень полезным для российской газовой промышленности", - подчеркнул Л.Михельсон, отметив, что ожидает решения правительства России по этому вопросу в ближайшие месяцы, передает Reuters.
<a href="http://top.rbc.ru/economics/12/02/2013/844806.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
</div>
<div class="news-list-wrapper">
<div class="news-item first">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844793.shtml" class="black">Замедление годовой инфляции в РФ ожидается лишь в конце весны</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844793.shtml">
<img height="160" width="200" alt="Замедление годовой инфляции в РФ ожидается лишь в конце весны" title="Замедление годовой инфляции в РФ ожидается лишь в конце весны" src="http://pics.top.rbc.ru/top_pics/uniora/04/1360665630_0804.200x160.jpeg">
</a>
</div>
<p>Замедление инфляции до 7% в годовом выражении ожидается только во втором полугодии 2013г., сообщил директор сводного департамента макроэкономического прогнозирования Министерства экономического развития (МЭР) РФ Олег Засов. "С конца весны ожидаем замедления годовой инфляции, но меньше 7% в годовом выражении будет только во втором полугодии", - сказал он.</p><p>Между тем инфляция в феврале текущего года составит 0,6-0,7%, за годовой период - 7,3-7,4%, сообщалось в еженедельном мониторинге социально-экономического развития РФ, ранее подготовленном МЭР. В феврале 2012г. рост потребительских цен составил 0,4%.
<a href="http://top.rbc.ru/economics/12/02/2013/844793.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
<div class="news-item">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844794.shtml" class="black">Британский фунт нашел поддержку в статистике</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844794.shtml">
<img height="160" width="200" alt="Британский фунт нашел поддержку в статистике" title="Британский фунт нашел поддержку в статистике" src="http://pics.top.rbc.ru/top_pics/uniora/25/1360666053_0325.200x160.jpeg">
</a>
</div>
<p>Фунт слаб во вторник. К 13:30 мск валюта достигла отметки 1,56 доллара США. Валюта установила новый минимум с августа 2012г., хотя продажи после выхода статистики из Великобритании приостановились.</p><p>Потребительские цены в Великобритании в январе 2013г. выросли на 2,7% по сравнению с аналогичным периодом предыдущего года. Такие данные приводятся в докладе Национального статистического бюро страны. Аналитики ожидали роста этого показателя также на 2,7%.
<a href="http://top.rbc.ru/economics/12/02/2013/844794.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
</div>
<div class="news-list-wrapper">
<div class="news-item first">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844789.shtml" class="black">МЭР: Из России утекло 8-10 млрд долл. в первый месяц 2013г.</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844789.shtml">
<img height="160" width="200" alt="МЭР: Из России утекло 8-10 млрд долл. в первый месяц 2013г." title="МЭР: Из России утекло 8-10 млрд долл. в первый месяц 2013г." src="http://pics.top.rbc.ru/top_pics/uniora/37/1360664957_0437.200x160.jpeg">
</a>
</div>
<p>Отток капитала из РФ составил 8-10 млрд долл. в январе 2013г., сообщил директор сводного департамента макроэкономического прогнозирования Министерства экономического развития (МЭР) РФ Олег Засов. "По нашей оценке, за январь чистый отток составил 8-10 млрд долл. без учета по операциям СВОП", - сказал он.</p><p>Прогноз МЭР по чистому оттоку капитала на текущий год остается на уровне от 0 до 10 млрд долл. "Во втором полугодии может быть приток", - отметил О.Засов.
<a href="http://top.rbc.ru/economics/12/02/2013/844789.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
<div class="news-item">
<div class="inner">
<h4><a href="http://top.rbc.ru/economics/12/02/2013/844787.shtml" class="black">С.Собянин рассказал, сколько платят московским учителям</a></h4>
<div class="pic">
<a href="http://top.rbc.ru/economics/12/02/2013/844787.shtml">
<img height="160" width="200" alt="С.Собянин рассказал, сколько платят московским учителям" title="С.Собянин рассказал, сколько платят московским учителям" src="http://pics.top.rbc.ru/top_pics/uniora/71/1360663786_0271.200x160.jpeg">
</a>
</div>
<p>Средняя зарплата учителей в Москве составила 57 тыс. руб. в 2012г., сообщил мэр столицы <a href="http://www.rbc.ru/persons/sobyanin.shtml">Сергей Собянин</a> на заседании правительства Москвы. По его словам, впервые за много лет почти не осталось вакансий учителей, а зарплата в этой сфере примерно на 7 тыс. руб. выше средней по городу.</p><p>Мэр также напомнил, что в 2012г. столичные школьники сдали ЕГЭ "значительно лучше, чем в предыдущие годы". Количество отличников по сравнению с 2010г. выросло в два раза.
<a href="http://top.rbc.ru/economics/12/02/2013/844787.shtml" class="read-more">далее</a>
</p>
</div><!-- .inner -->
</div><!-- .news-item -->
</div>



EOL;

preg_match_all("#http://top.rbc.ru/economics/(.*)\" class=\"black\"#iusU", $text, $matches);

echo '<pre>' . print_r($matches,1) . '</pre>';


Вот реальный кусок кода из которого надо извлечь ссылки. Здесь почему-то не срабатывает...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.