@red-web

Как составить регулярное выражение поиска в html документе?

Есть html документ в котором перечислены ссылки на страницы с описанием авто такого вида:

....
				<div class="about">
   <div>
      <div class="name">
         <a target="_blank" href="/ts/car/0404029689/">
         MINI COOPER S ALL4 COUNTRYMAN							</a>
         <span class="new-arrival">новое поступление</span>
      </div>
      <div class="decription">
         <p>
            2019 г.в., Бензин, 1998 см<sup>3</sup>, 192.00 л.с.								
         </p>
         <span>
         пробег 0 км.																											</span>
         <p class="full-descr">
            2019 г.в., Бензин, 1998 см<sup>3</sup>, 192.00 л.с., пробег 0км.								
         </p>
      </div>
      <div class="item-brand">
         <div>
            <a target="_blank" href="/ts/car/0404029689/">
            MINI																																		COOPER S ALL4 COUNTRYMAN																					</a>
         </div>
      </div>
      <div class="item-year">
         2019															
      </div>
      <div class="item-gasoline">
         Бензин															
      </div>
      <div class="item-model">
         1998															
      </div>
      <div class="item-power">
         192.00 л.с.															
      </div>
      <div class="item-mileage">
         0 км.															
      </div>
      <div class="price">
         2 556 000.01 <span class="iconfont1">w</span>													
      </div>
      <div class="to-favorites">
         <div><ins class="hovered-el new-arrival"><span data-hint="новое поступление"><i></i></span></ins></div>
         <div>&nbsp;</div>
         <div class="add-to">
            <a href="#" class="favorite-link hovered-el star no-added" data-id="31174"><span class="iconfont1" data-hint="В избранное">k<i></i></span></a>
            <a href="#" class="favorite-link hovered-el star added hidden" data-id="31174"><span class="iconfont1" data-hint="В избранном">k<i></i></span></a>
            <script type="text/javascript">
               $.cookie.json = true;
               var favorite_cookie = $.cookie('BITRIX_SM_FAVORITE_ITEM') || [];
               
               $.each(favorite_cookie, function(i, item){
               	$('.single-el-' + item).find('.added').removeClass('hidden');
               	$('.single-el-' + item).find('.no-added').addClass('hidden');
               });
               
            </script>
         </div>
      </div>
   </div>
</div>
</div>
</div>
<div class="single-el single-el-27160     " id="bx_3966226736_27160">
   <div>
      <div class="image">
         <span>
         <a target="_blank" href="/ts/car/0404027925/" class="backsizefix" style="background-image: url('/upload/iblock/52e/52ece292c50237e341d0a678c201a071.jpg')" title=""></a>
         </span>
      </div>
      <div class="about">
         <div>
            <div class="name">
               <a target="_blank" href="/ts/car/0404027925/">
               MINI COOPER D ALL4 COUNTRYMAN							</a>
            </div>
            <div class="decription">
               <p>
                  2019 г.в., Дизель, 1995 см<sup>3</sup>, 150.00 л.с.								
               </p>
               <span>
               пробег 0 км.																											</span>
               <p class="full-descr">
                  2019 г.в., Дизель, 1995 см<sup>3</sup>, 150.00 л.с., пробег 0км.								
               </p>
            </div>
            <div class="item-brand">
               <div>
                  <a target="_blank" href="/ts/car/0404027925/">
                  MINI																																		COOPER D ALL4 COUNTRYMAN																					</a>
               </div>
            </div>
            <div class="item-year">
               2019															
            </div>
            <div class="item-gasoline">
               Дизель															
            </div>
            <div class="item-model">
               1995															
            </div>
            <div class="item-power">
               150.00 л.с.															
            </div>
            <div class="item-mileage">
               0 км.															
            </div>
            <div class="price">
               2 555 180 <span class="iconfont1">w</span>													
            </div>
            <div class="to-favorites">
               <div>&nbsp;</div>
               <div>&nbsp;</div>
               <div class="add-to">
                  <a href="#" class="favorite-link hovered-el star no-added" data-id="27160"><span class="iconfont1" data-hint="В избранное">k<i></i></span></a>
                  <a href="#" class="favorite-link hovered-el star added hidden" data-id="27160"><span class="iconfont1" data-hint="В избранном">k<i></i></span></a>
                  <script type="text/javascript">
                     $.cookie.json = true;
                     var favorite_cookie = $.cookie('BITRIX_SM_FAVORITE_ITEM') || [];
                     
                     $.each(favorite_cookie, function(i, item){
                     	$('.single-el-' + item).find('.added').removeClass('hidden');
                     	$('.single-el-' + item).find('.no-added').addClass('hidden');
                     });
                     
                  </script>
               </div>
            </div>
         </div>
      </div>
   </div>
</div>
<div class="single-el single-el-30614     " id="bx_3966226736_30614">
   <div>
      <div class="image">
         <span>
         <a target="_blank" href="/ts/car/0101041334/" class="backsizefix" style="background-image: url('/upload/iblock/276/2763baf44e4d49e1b8a7f884fcc23247.jpg')" title=""></a>
         </span>
      </div>
      <div class="about">
         <div>
            <div class="name">
               <a target="_blank" href="/ts/car/0101041334/">
               MINI COOPER S CABRIO							</a>
            </div>
            <div class="decription">
               <p>
                  2019 г.в., Бензин, 1998 см<sup>3</sup>, 192.00 л.с.								
               </p>
               <span>
               пробег 0 км.																											</span>
               <p class="full-descr">
                  2019 г.в., Бензин, 1998 см<sup>3</sup>, 192.00 л.с., пробег 0км.								
               </p>
            </div>
            <div class="item-brand">
               <div>
                  <a target="_blank" href="/ts/car/0101041334/">
                  MINI																																		COOPER S CABRIO																					</a>
               </div>
            </div>
            <div class="item-year">
               2019															
            </div>
            <div class="item-gasoline">
               Бензин															
            </div>
            <div class="item-model">
               1998															
            </div>
            <div class="item-power">
               192.00 л.с.															
            </div>
            <div class="item-mileage">
               0 км.															
            </div>
            <div class="price">
               2 539 300.02 <span class="iconfont1">w</span>													
            </div>
            <div class="to-favorites">
               <div>&nbsp;</div>
               <div>&nbsp;</div>
               <div class="add-to">
                  <a href="#" class="favorite-link hovered-el star no-added" data-id="30614"><span class="iconfont1" data-hint="В избранное">k<i></i></span></a>
                  <a href="#" class="favorite-link hovered-el star added hidden" data-id="30614"><span class="iconfont1" data-hint="В избранном">k<i></i></span></a>
                  <script type="text/javascript">
                     $.cookie.json = true;
                     var favorite_cookie = $.cookie('BITRIX_SM_FAVORITE_ITEM') || [];
                     
                     $.each(favorite_cookie, function(i, item){
                     	$('.single-el-' + item).find('.added').removeClass('hidden');
                     	$('.single-el-' + item).find('.no-added').addClass('hidden');
                     });
                     
                  </script>
               </div>
            </div>
         </div>
      </div>
   </div>
</div>
...


как написать регулярное выражение правильно, что бы он брал только эти ссылки таким образом:
1. ищем все блоки которые начинаются <div class="about"> и заканчиваются </div>
2. в каждом найденном блоке ищем ссылку начинающуюся с <a target="_blank" href=" и заканчивающуюся "

Или может какой другой способ есть, проще?
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Kirill-Gorelov
С ума с IT
symfony dom crawler
Я бы лучше так делал, без регулярок
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Используйте какой-нибудь HTML DOM Parser и CSS Selector-ы, и будет вам сш-ш-шастье.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы