1

Я пытаюсь удалить весь тег с определенным классом:

Код:

<div> 
Blah blah 
<div class='myClass'>
  <div>some other div</div>
</div>
</div>

<div> 
Blah blah 
<div class='myClass'>
  more text
</div>
</div>

<div> 
Blah blah 
<div class='myClass'>
  more text
</div>
</div>

Я хочу найти тег .myClass и заменить его на "" (удалить)
итак результат таков:

<div> 
Blah blah 

</div>

<div> 
Blah blah 

</div>

<div> 
Blah blah 

</div>

Я знаю, что это легко с jQuery, но я хочу сделать это на стороне текстового редактора. Или, может быть, я могу просто просмотреть код и скопировать его после того, как jquery удалил его. Возвышенный текст или блокнот ++

Спасибо!

2 ответа2

3

Используйте notepad++ с регулярными выражениями

  1. Откройте Notepadd++
  2. Нажмите CTRL+H
  3. Выберите Регулярное выражение в качестве режима поиска.
  4. Введите ^.*myClass.*$ разделе Найти что и ничего в разделе Заменить на
  5. Нажмите Заменить все


Случаи, когда начальная и конечная строки находятся в разных строках (Блокнот 6.xx)

Мы используем обходной путь и временно удаляем все возвраты каретки (+ переводы строки).
Это дает нам одну длинную очередь, где гораздо проще использовать RegEx. Позже мы поставили карету обратно.

  1. Выберите уникальную строку, такую как %%%NEWLINE%%% которая пока не встречается в вашем тексте.
    Сначала проверьте это с помощью простого поиска CTRL+F
  2. Нажмите CTRL+H и выберите Регулярное выражение в качестве режима поиска.
  3. Найдите \r\n и замените на %%%NEWLINE%%% . Нажмите Заменить все .
    \r\n являются специальными символами и означают возврат каретки и перевод строки . Вы получаете одну длинную очередь.
    Помните: отныне вы больше не можете использовать ^ и $
  4. Найти <div .*?myClass.*?</div> и заменить ничем (обратите внимание на пробел)
  5. Найдите %%%NEWLINE%%% и замените на \r\n чтобы вернуть нашу обычную текстовую структуру

При написании моей правки я заметил, что вы изменили свой вопрос с помощью прерывателя игры. Этот метод (вероятно, не метод RegEx вообще) не будет работать, пока вы вложили теги <div></div> . Механизм RegEx не может знать, должен ли он остановиться на 2-м, 3-м или n-м </div>

Используется RegEx

^  → line beginning
.  → any single character
*  → repeat previous pattern 
.*  → any characters as long as possible (greedy)  
.*? → any characters as short as possible (non greedy)
$  → line end

Использованные ресурсы

0

Я до сих пор использую Dreamweaver в основном из-за поиска по "определенному тегу". Вы можете найти, удалить, раздеть и изменить все легко. В вашем случае вы можете найти каждый тег div с классом myClass и удалить тег с содержимым. Это займет всего 5 секунд, чтобы получить желаемый результат.

Вы можете увидеть, как это работает, по этой ссылке http://www.lehigh.edu/computing/web/IntDreamweaver/find.html.

Это самая важная недостающая часть в notepad++ для моих нужд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .