Подскажите по регулярке

Тема в разделе "PHP", создана пользователем mc-alkin, 11 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    PHP:
    <ul class="numbers">
    <
    li class="odd">
    <
    b>Москва: </b><span style="color:green;">261</span>
    </
    li>
    <
    li>
    <
    b>Питер: </b>0</li>
    <
    li class="odd">
    <
    b>Казань: </b>145</li>
    <
    li>
    <
    b>Мурманск: </b>47,639</li>
    <
    li class="odd">
    <
    b>Всего: </b>23,424</li>
    </
    ul>
    реально одной функцией выколупать "23,424" ?
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    PHP:
    '#<li\sclass="odd">\s+<b>\w+:\s</b>(\d+[,]\d+)#i'
     
    mc-alkin нравится это.
  3. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    спс, а функция какая?) preg_match?
     
  4. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Да. Или preg_match_all
     
  5. Delk0

    Delk0

    Регистр.:
    26 мар 2010
    Сообщения:
    288
    Симпатии:
    57
    Так будет более универсально:
    PHP:
    '#<li\s+class="odd">\s+<b>\w+:\s+</b>(\d+[,]\d+)#is'
     
    mc-alkin нравится это.
  6. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    а если там 0, то есть без запятой?
     
  7. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    PHP:
    '#<li\s+class="odd">\s+<b>\w+:\s+</b>(.*)#is'
     
  8. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    вот из чего надо выколупать:

    выделил жирненьким циферки... уже час пыхчу над регулярками((( выручайте.
     
  9. Delk0

    Delk0

    Регистр.:
    26 мар 2010
    Сообщения:
    288
    Симпатии:
    57
    PHP:
    <?php 
    $text 
    '<ul class="numbers">
    <li class="odd">
    <b>Респект: </b>0</li>
    <li>
    <b>Учеников: </b>0</li>
    <li class="odd">
    <b>Побед: </b>0</li>
    <li>
    <b>Награблено: </b>0</li>
    <li class="odd">
    <b>Потеряно: </b>149</li>
    <li>
    <b>Сэнсей: </b><a href="/player/399903/">Maakkcc</a>
    </li>
    </ul>'
    ;

    preg_match_all('#<li\s*?\S*?>\s+<b>\w+:\s+</b>(\d+[,]?\d*?)\s*</li>#is',$text,$result);
    ?>
    В массиве $result[1] будут содержаться все значения цифер. Тебе останется только выбрать из них нужные
     
Статус темы:
Закрыта.