Я использую регулярные выражения для извлечения данных с веб-сайта, но теперь я нашел проблему.Поиск нескольких шаблонов внутри шаблона
Это часть исходного HTML, который я хочу проанализировать. Я хочу извлечь текст после «descuentos-» и города после «< a href >».
<div id="cities2_2">
<a href = "http://website.com/descuentos-espana/">Badajoz</a>
<a href = "http://website.com/descuentos-espana/">Badalona</a>
<a href = "http://website.com/descuentos-barcelona/">Barcelona</a>
<a href = "http://website.com/descuentos-bilbao/">Bilbao</a>
<a href = "http://website.com/descuentos-espana/">Burgos</a>
</div>
</div>
<div class="capa_cities" onmouseover="act_formato(3, 2);"
onmouseout="desact_formato(3, 2);">
<h2 id="title_city3_2">C</h2>
<div id="cities3_2">
<a href = "http://website.com/descuentos-espana/">Cáceres</a>
<a href = "http://website.com/descuentos-cadiz/">Cádiz</a>
<a href = "http://website.com/descuentos-espana/">Cartagena</a>
<a href = "http://website.com/descuentos-espana/">Castellón</a>
<a href = "http://website.com/descuentos-espana/">Ceuta</a>
<a href = "http://website.com/descuentos-espana/">Ciudad Real</a>
<a href = "http://website.com/descuentos-cordoba/">Córdoba</a>
<a href = "http://website.com/descuentos-espana/">Cuenca</a>
я мог смотреть на < A HREF = "http://website.com/descuentos- (. *)" >, но есть и другие, которые соответствуют шаблону на сайте. Итак, у меня теперь есть этот шаблон:
#<div id="cities[0-9]+_2">(<a href = "http://website.com/descuentos-(.*?)/">(.*?)</a>)*#
Я бы хотел, чтобы он был рекурсивным. Я имею в виду: для каждого "< a href =" http://website.com/descuentos- (. *)/"> (. *) </a >" Найдено, найдите два небольших рисунка внутри.
Есть ли способ достичь этого в регулярном выражении, или мне нужно переработать его через preg_match_all?
ли вы рассмотреть возможность использования HTML-парсер? – Jerry
Для других более легких кусков, таких как большинство, которые я буду добывать, я думал, что это будет излишним. Для этого, в частности, да, но я бы предпочел использовать одно и то же везде. – markmb
Что бы вы хотели найти, после получения матчей? – mavrosxristoforos