За последние 24 часа нас посетили 17219 программистов и 1228 роботов. Сейчас ищут 1380 программистов ...

Парсинг RSS

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

  1. dok_yura

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

    С нами с:
    5 янв 2008
    Сообщения:
    9
    Симпатии:
    0
    Мне нужно получить все что между тегами <item>и </item>, но когда я применяю регулярное выражение(*), вместо того чтобы получить несколько совпадений, я получаю все что находится между первым <item> и последним тегом </item>.
    PHP:
    1.  
    2. $rssContent = "
    3. <item>
    4.   <pubDate>00:00:00</pupDate>
    5.   <title>title1</title>
    6. </item>\n
    7. <item>
    8.   <pubDate>00:00:00</pupDate>
    9.   <title>title2</title>
    10. </item>\n";
    11.  
    12. preg_match_match("/<\s*item\s*>([\S\n]+)<\s*\/\s*item\s*>/i", $rssContent, $matches);
    13.  
    Может кто-то поможет как сделать ограничение, чтобы между <item>и </item> не встречалось ни одного </item> ?

    почта: dok_yura[at]list.ru
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    dok_yura

    модификатор жадности поставь.
     
  3. dok_yura

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

    С нами с:
    5 янв 2008
    Сообщения:
    9
    Симпатии:
    0
    это не ответ
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    dok_yura

    а-а-а. деточке надо все разжевать... деточка думать не умеет.

    прочти хоть это для начала:
    http://php.ru/manual/reference.pcre.pat ... fiers.html

    это ты используешь
    i (PCRE_CASELESS)
    Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра

    этот надо добавить.
    U (PCRE_UNGREEDY)
    Этот модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ '?'. Такая возможность не совместима с Perl. Модификатор U также может использоваться внутри шаблона, при помощи '?U' записи.
     
  5. dok_yura

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

    С нами с:
    5 янв 2008
    Сообщения:
    9
    Симпатии:
    0
    Большое спасибо, помогло =)
    Тема закрыта!