Удалите все строки (не), соответствующие регулярному выражению, используя Блокнот ++

Как удалить все строки, соответствующие или не соответствующие регулярному выражению в Notepad ++?

В Vim я бы сделал следующее, чтобы удалить все совпадающие строки:

:g/regex/d

И удалить все несоответствующие строки:

:!g/regex/d

Я ищу эквивалент этих команд в Notepad ++.

Как и объяснил вБлокнот ++ - удалить все строки с определенным текстом«Я обычно прибегаю к тому, чтобы закрыть соответствующие строки и удалить пустые строки. Есть ли более простой способ?

Согласноэтот ответверсии Notepad ++> = 6.0 поддерживают сопоставление разрывов строк в регулярном выражении, что позволяет напрямую удалять целые строки без предварительного создания пустых строк. Следующий шаблон должен удалить все строки, содержащие «foobar» при замене на пустую строку:

^.*foobar.*\r\n

Теперь, как обсуждалось вРегулярное выражение для соответствия строке, которая не содержит слова?", отрицание регулярных выражений не совсем просто. Для удаления строк в Notepad ++, которые не содержат" foobar ", потребуется следующий шаблон:

^((?!foobar).)*\r\n

Поскольку это довольно сложная команда для ввода только для удаления строк, которые не содержат слово (или, возможно, более сложное выражение), мне интересно, есть ли более простое решение.

Ответы на вопрос(1)

Ваш ответ на вопрос