Вытащить несколько строк

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

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

    alseman

    Регистр.:
    21 май 2008
    Сообщения:
    190
    Симпатии:
    25
    Нид хелп :) Нужно вытащить контент. Контент заключен в теги:
    HTML:
    <div id="style">
    ...тут идет несколько строк,
    которые мне нужно вытащить...
    ---<br />
    
    Составил такую регулярку:
    Код:
    ~<div id="style">(.*)---<br />~isU
    но из-за моей врожденной криворукости она отказывается работать :)
    Кто-то может помочь?
     
  2. qwyjibo

    qwyjibo Постоялец

    Регистр.:
    27 янв 2009
    Сообщения:
    64
    Симпатии:
    12
    Кавычки надо экранировать, так работает:
    PHP:
    $str='<div id="style">
    ...тут идет несколько строк,
    которые мне нужно вытащить...
    ---<br />'
    ;
    preg_match('/<div id=\"style\">(.*)---<br \/>/isU'$str$match);
    print_r ($match);
     
    alseman нравится это.
  3. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    еще нужно следить, чтобы была включена опция "Точка соответствует новой строке" чтобы паттерн (.*) мог выбрать несколько строк.
     
  4. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    andrnag, так там указано, модификатор 's' ;)
     
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    упс :) не заметил
     
  6. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    про кавычки глупость какая-то... и в качестве разделителя / никакая фигня, тогда слишком много эскейпить придётся. лучше юзать #
    PHP:
    <?php
    $str
    ='<div id="style">
    ...тут идет несколько строк,
    которые мне нужно вытащить...
    ---<br />'
    ;
    preg_match('#<div id="style">(.*)---<br />#isU'$str$match);
    print_r ($match);  
    ?>
     
Статус темы:
Закрыта.