Найти до

Тема в разделе "Регулярные выражения", создана пользователем RedRabbit, 18 ноя 2010.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    608
    Симпатии:
    251
    Помогите пожалуйста.
    Как найти ссылку, которая выделена жирным, зная только то, что после нее идет. А до этой ссылки может идти что угодно.
    Код:
    ">Далее&nbsp;<b class="t110">›</b></a>
    Код:
    <td class="tah t75" id="page_bar"><b>·&nbsp;1&nbsp;·</b> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=2">2</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=3">3</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=4">4</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=5">5</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=6">6</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=7">7</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=8">8</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=9">9</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=10">10</a> &nbsp; <a href="[B]?p%5B408%5D=17553&amp;p3%5Bpage%5D=2[/B]">Далее&nbsp;<b class="t110">›</b></a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=11"><b class="t110">»</b></a></td>
     
  2. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    PHP:
    $stroka file_get_contents("http://www.google.ru");
        
    // Читаем регулярками
    preg_match_all"/<a href=\"(.*?)\">Далее&nbsp;<b class=\"t110\">/is"$stroka$ssylka);
    echo 
    $ssylka[1][0]
    echo 
    $ssylka[1][1]
    ....
    echo 
    $ssylka[1][10]
    Где-то так
     
    RedRabbit нравится это.
  3. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    608
    Симпатии:
    251
    А вот не как то так...
    Получается твоя регулярка найдет от первого вхождения <a href=\ до Далее. А мне нужно от последнего!
    Т.е. найти вот это
     
  4. frantz1488

    frantz1488

    Регистр.:
    21 мар 2010
    Сообщения:
    162
    Симпатии:
    43
    Попробуй так, я сейчас немогу проверить

    PHP:
    $stroka file_get_contents("http://www.google.ru");
        
    // Читаем регулярками
    preg_match_all'/.*?<a href="(.*?)">Далее&nbsp;<b class="t110">/is'$stroka$ssylka);
    echo 
    $ssylka[1][0]
    echo 
    $ssylka[1][1]
    ....
    echo 
    $ssylka[1][10]
     
    RedRabbit нравится это.
  5. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.037
    Симпатии:
    702
    обреж и возьми последнюю
    PHP:
    $stroka '<td class="tah t75" id="page_bar"><b>·&nbsp;1&nbsp;·</b> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=2">2</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=3">3</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=4">4</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=5">5</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=6">6</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=7">7</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=8">8</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=9">9</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=10">10</a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=2">Далее&nbsp;<b class="t110">›</b></a> &nbsp; <a href="?p%5B408%5D=17553&amp;p3%5Bpage%5D=11"><b class="t110">»</b></a></td>'
    $out=strpos($stroka,'>Далее&nbsp;');
    $stroka=substr($stroka,0,$out);
    preg_match_all'/href=\".*?\"/'$stroka$ssylka); 
    //print_r($ssylka);
    $count_ssylka=count($ssylka);
    echo 
    substr($ssylka[0][$count_ssylka-1],6,-1);
     
    RedRabbit нравится это.
Статус темы:
Закрыта.