Удалите все строки (не), соответствующие регулярному выражению, используя Блокнот ++
Как удалить все строки, соответствующие или не соответствующие регулярному выражению в Notepad ++?
В Vim я бы сделал следующее, чтобы удалить все совпадающие строки:
:g/regex/d
И удалить все несоответствующие строки:
:!g/regex/d
Я ищу эквивалент этих команд в Notepad ++.
Как и объяснил вБлокнот ++ - удалить все строки с определенным текстом«Я обычно прибегаю к тому, чтобы закрыть соответствующие строки и удалить пустые строки. Есть ли более простой способ?
Согласноэтот ответверсии Notepad ++> = 6.0 поддерживают сопоставление разрывов строк в регулярном выражении, что позволяет напрямую удалять целые строки без предварительного создания пустых строк. Следующий шаблон должен удалить все строки, содержащие «foobar» при замене на пустую строку:
^.*foobar.*\r\n
Теперь, как обсуждалось вРегулярное выражение для соответствия строке, которая не содержит слова?", отрицание регулярных выражений не совсем просто. Для удаления строк в Notepad ++, которые не содержат" foobar ", потребуется следующий шаблон:
^((?!foobar).)*\r\n
Поскольку это довольно сложная команда для ввода только для удаления строк, которые не содержат слово (или, возможно, более сложное выражение), мне интересно, есть ли более простое решение.