За последние 24 часа нас посетили 20160 программистов и 1679 роботов. Сейчас ищут 1917 программистов ...

Помогите с регулярным выражением

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

  1. GFox

    GFox Активный пользователь

    С нами с:
    31 мар 2010
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, уважаемые знатоки, помогите, пожалуйста, с регулярным выражением

    В страничке для парсинга есть такая строчка:

    Код (Text):
    1.  
    2. <li><b>Основной синдикат:</b> #456 <a href=/syndicate.php?id=456><b>Защитники Говорящей Горы</b></a> [ <b>35</b> (979687) ] <font style='font-size:8px;color:#809980'>+125739</font><br>&nbsp;<img src=http://images.ganjawars.ru/img/rank5.gif width=23 height=13>&nbsp;Дворник</ul><br><center><i>(список из 13 остальных синдикатов скрыт)</i></center><br></td></tr>
    нужно вытащить эти показатели:
    35 979687

    вот регулярное выражение:
    Код (Text):
    1.  
    2. preg_match("|<li><b>Основной синдикат:<\/b>.*?.*?\((\d+)\)|", $html, $sl);
    на выходе имеем:

    Код (Text):
    1.  
    2. # Array ( [0] => Основной синдикат: #456 Защитники Говорящей Горы  [ 35 (979735) [1] => 979735 )
    Помогиет исправить регулярку так, что бы на выходе было следующее:

    Код (Text):
    1.  
    2. # Array ( [0] => Основной синдикат: #456 Защитники Говорящей Горы  [ 35 (979735) [1] => 35  [2] => 979735 )
    что-то никак не получается(
     
  2. Dima4321

    Dima4321 Активный пользователь

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4.  
    5.  
    6. $m="<li><b>Основной синдикат:</b> #456 <a href=/syndicate.php?id=456><b>Защитники Говорящей Горы</b></a> [ <b>35</b> (979687) ] <font style='font-size:8px;color:#809980'>+125739</font><br> <img src=http://images.ganjawars.ru/img/rank5.gif width=23 height=13> Дворник</ul><br><center><i>(список из 13 остальных синдикатов скрыт)</i></center><br></td></tr>";
    7.  
    8. $poisk='/<b>(\d{2})<\/b>/siU';
    9.  
    10.  
    11. $new=preg_match_all($poisk,$m,$matches);
    12.  
    13. echo $matches[1][0];
    14. echo '<br>';
    15.  
    16.  
    17. $poisk2='/\((\d{6})\)/siU';
    18.  
    19. $new2=preg_match_all($poisk2,$m,$matches);
    20.  
    21. echo $matches[1][0];
    22.  
    23.  
    24. ?>