Заменить блоки с поиском закрывающего тэга

Тема в разделе "Функции поиск-замены и регулярные выражения", создана пользователем Vesb, 19 авг 2018.

  1. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    Нужно удалить блоки <div id="billboard...> с содержимым.
    Делаю так
    <div id="billboard{AUTO}div|
    Но почему-то не отрабатывает. Что я делаю не так?


    <div id="billboard5-sticky_1-0" data-height="600" data-parent><div><div id="billboard5-dynamic_1-0"></div></div></div><div id="billboard6-sticky_1-0" data-height="600" data-parent><div><div id="billboard6-dynamic_1-0"></div></div></div><div id="billboard7-sticky_1-0" data-height="600" data-parent><div><div id="billboard7-dynamic_1-0"></div></div></div></ul><div><div id="chop_1-0" data-chop-height><div id="mntl-chop-button_1-0"><div>
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Регулярное выражение удаляет
    :)
    Код:
    re:<div id="billboard[^<>]+>\s*</div>|
    re:<div>\s*</div>|
    re:<div id="billboard[^<>]+>\s*</div>|
    [​IMG]
     
  3. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    Большое спасибо. Но это частный случай. Просто там вариантов еще не понятно сколько. Если после <div id="billboard будет несколько <div><div>, то уже не сработает регулярка и поедет вложенность.
    А как я указал разве не должно работать?
     
  4. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    И у меня еще этот вариант не отрабатывает почему-то
    111.png
     
  5. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    Но конечно больше интересует автопоиск закрывающего тэга {AUTO}
     
  6. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Регулярные выражения чувствительны к содержимому.
    Универсальное решение можно подобрать после как ознакомления со всеми попадающимися вариантами кода.
    Тема в разделе "Функции поиск-замены и регулярные выражения":D
    Аналог {AUTO}
    Код:
    re:<div id="billboard.*?</div>|
     
  7. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    Так я оттуда и взял <div id="billboard{AUTO}div|
    и не понимаю почему не работает. Может не так понял

    Вот этот кусок <div id="billboard7-sticky_1-0" data-height="600" data-parent><div><div id="billboard7-dynamic_1-0"></div></div></div>
    После обработки с указанной регуляркой останутся последние два закрывающего дива </div></div>
     
  8. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Если до самого последнего дива тогда так
    Код:
    re:<div id="billboard.*</div>|
     
    Vesb нравится это.
  9. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    может я конечно не очень понимаю, но мне кажется регулярками это не сделать универсальным. А вы {AUTO} не пользуетесь. Не можете подсказать что я не так настроил?

    Если между дивами </div></div> будет текст. уже не сработает
    </div></div>Текст</div> он возмет последний до Текст, а чтобы сохранить вложенность нужно взять после текста. И может быть соврешенно по-разному. Тут вряд ли заменить авто поиск закрытия тэга
     
  10. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Хватало регулярками, как говориться на вкус и цвет..
    Предполагать только можно какие варианты форматирования могут встретиться - не увидев этих вариантов, регулярку нормальную не составить.
     
  11. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Обратите внимание как отрабатывает макрос и где стоят закрывающиеся теги. Вам придется применить несколько правил замены.

    [​IMG]
    [​IMG]
     
    Vesb и kagorec нравится это.
  12. Vesb

    Vesb Member Пользователи

    Регистрация:
    7 мар 2011
    Сообщения:
    50
    Большое спасибо.
     

Поделиться этой страницей