Exclua todas as linhas (não) correspondentes a uma regex usando o Notepad ++
Como excluir todas as linhas correspondentes ou não a uma regex no Notepad ++?
No Vim, eu faria o seguinte para excluir todas as linhas correspondentes:
:g/regex/d
E para excluir todas as linhas não correspondentes:
:!g/regex/d
Estou procurando o equivalente desses comandos no Notepad ++.
Como também explicado em "Notepad ++ - exclua todas as linhas com determinado texto", Costumo adotar a maneira de apagar as linhas correspondentes e excluir as linhas em branco posteriormente. Existe uma maneira mais simples?
Conformeesta resposta, as versões do Notepad ++> = 6.0 suportam quebras de linha correspondentes no regex, permitindo excluir linhas inteiras diretamente, sem criar primeiro linhas em branco. O padrão a seguir deve remover todas as linhas que contêm "foobar" quando substituídas por uma sequência vazia:
^.*foobar.*\r\n
Agora, conforme discutido em "Expressão regular para corresponder a uma linha que não contém uma palavra?", negar expressões regulares não é exatamente simples. Excluir linhas no Notepad ++ que não contenham" foobar "exigiria o seguinte padrão:
^((?!foobar).)*\r\n
Como esse é um comando bastante complicado de digitar apenas para remover linhas que não contêm uma palavra (ou expressão possivelmente mais complexa), pergunto-me se existe uma solução mais fácil.