Как при помощи регулярного выражения найти...

Тема в разделе "Регулярные выражения", создана пользователем qwerty, 16 май 2008.

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

    qwerty Постоялец

    Регистр.:
    10 апр 2006
    Сообщения:
    75
    Симпатии:
    0
    Здравствуйте!
    Помогите в слудующей проблеме.
    Обращаюсь к серверу полуаю от него полностью всю страницу как мне в ней найти определенные данне.если на нй куча разных таблиц и тегов?
    И помогите составть регулярно выражение для того что бы у меня было несолько массивов в кторых хранился
    курс покупки и продажи для доллара
    курс покупкии продажи для евро
    и дата на какое число этот курс
    и увеличился он сегодня или уменьшился (это можно определить из тега имг)

    где то есть подобный кусок хтмл в полученом мною запросе.

    <tr align="left">
    <td colspan="4" class="course_title">Курсы иностранной валюты</td>
    </tr>
    <tr>
    <td colspan="4" align="right" class="course_sub_title">покупка &nbsp;&nbsp; продажа </td>
    </tr>
    <tr>
    <td align="left" class="course_body">&nbsp;</td>
    <td height="22" align="left" class="course_body">Доллар США</td>
    <td width="47" align="left" class="course_body"><img src="img/down.gif" width="7" height="8" hspace="1">23,66</td>
    <td width="65" align="left" class="course_body"><img src="img/down.gif" width="6" height="8" hspace="1">24,01</td>
    </tr>
    <tr>
    <td align="left" class="course_body">&nbsp;</td>
    <td height="22" align="left" class="course_body">ЕВРО</td>
    <td width="47" align="left" class="course_body"><img src="img/up.gif" width="7" height="8" hspace="1">36,77</td>
    <td width="65" align="left" class="course_body"><img src="img/up.gif" width="6" height="8" hspace="1">37,20</td>
    </tr>
    <tr align="left">
    <td colspan="4" class="submenu" align="center">(установлены банком на 16.05.08)</td>
    </tr>
     
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    проще строковыми функциями , имхо
     
  3. mentanos

    mentanos Постоялец

    Регистр.:
    27 дек 2007
    Сообщения:
    128
    Симпатии:
    35
    $s - строка с кодом страницы
    Код:
    preg_match_all('/course_body">(?:<img[^>]+>)?([^<]+)/',$s,$r);
    $r = &$r[1];
    $rz = array();
    for ( $i=0; $i<sizeof($r); $i++) {
    	$rz[$r[++$i]] = array(
    		'buy' => $r[++$i],
    		'sell' => $r[++$i]
    	);
    }
    print_r($rz);
    
     
    qwerty нравится это.
  4. qwerty

    qwerty Постоялец

    Регистр.:
    10 апр 2006
    Сообщения:
    75
    Симпатии:
    0
    Странно решил попробовать этот код в RegexBuddy, а он не работет хотя в пхп это регулярное выражение работет корректро.В чем может быть проблема?набрал все верно.
     
  5. bork1234

    bork1234 Постоялец

    Регистр.:
    25 июн 2008
    Сообщения:
    65
    Симпатии:
    13
    Вставил регулярку в Buddy
    Код:
    course_body">(?:<img[^>]+>)?([^<]+)
    На Вашем тестовом примере все работает
    Возможно вставляли вместе с экранирующими regexp слешами
     
Статус темы:
Закрыта.