За последние 24 часа нас посетили 17943 программиста и 1654 робота. Сейчас ищут 865 программистов ...

Найти тег с произвольным числом вложенных тегов

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

  1. barbiturat

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

    С нами с:
    24 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    Как в приведенном примере найти <div class="someDiv"> со всем его содержимым при помощи одного регулярного выражения? Это вообще возможно?
    Код (Text):
    1.  
    2.     <div class="someDiv">
    3.         <div>...</div>
    4.         <div>...</div>
    5.         <div>
    6.             <div>...</div>
    7.         </div>
    8.     </div>
    [/code]
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    одного?
    читай про модификатор R
     
  3. samolet24

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

    С нами с:
    6 янв 2010
    Сообщения:
    4
    Симпатии:
    0
    <div\s+class="someDiv"\s*>((?:(?: (?!<div[^>]*>|</div>).)++|<div[^>]*>(?1)</div>)*)</div>
     
  4. MiksIr

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

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Код (Text):
    1.   re> #<div\s+class="someDiv"\s*>((?:(?: (?!<div[^>]*>|</div>).)++|<div[^>]*>(?1)</div>)*)</div>#
    2. data> <div class="someDiv"> <div>...</div> <div>...</div> <div> <div>...</div> </div> </div>
    3. No match
    =( Уж сказали бы сразу про x человеку
     
  5. barbiturat

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

    С нами с:
    24 дек 2009
    Сообщения:
    5
    Симпатии:
    0
    samolet24, спасибо большое! К сожалению я интересовался этим не для использования в perl или php, а для более широкого применения (в JavaScript или в разных IDE при поиске - замене) поэтому конструкция "?1" тут не подходит :(
    Но мне уже объяснили, что такие сложные выражение не делаются через чистый regexp.
    И спасибо всем!