Como faço para excluir linhas sem "." no Notepad ++? [duplicado]


11

No Notepad ++, tenho muitas linhas no formato:

abc.xyz

onde "abc" pode ter espaço ou - ou números.

Como faço para excluir linhas sem "."? Portanto, se uma linha não tiver nenhum ".", Quero removê-la completamente, nem mesmo deixar uma linha vazia.

Respostas:


40

Como excluir linhas sem .?

  • Menu "Pesquisar"> "Substituir" (ou Ctrl+ H)

  • Defina "Encontre o que" para ^[^\.]*\r\n

    • É possível substituir \r\npor diferentes expressões regulares de EOL (Fim de linha), dependendo dos EOLs do seu arquivo (consulte "Eu tenho um EOL diferente no meu arquivo, o que posso fazer?" E "Não me importo com o que EOLs meu arquivo usa , o que posso fazer? "abaixo).
  • Desmarque "Substituir por"

  • Ativar "Expressão regular"

  • Clique em "Substituir tudo"

    Imagem

Notas:

  • O acima pressupõe que a última linha do arquivo tenha um EOL à direita.

  • O acima também pressupõe que você esteja editando um arquivo de texto com EOLs do Windows \r\n,.

Antes :

abc.xyz
abcdef
abc 123.xyz
abc 123def

Depois :

abc.xyz
abc 123.xyz

Eu tenho uma EOL diferente no meu arquivo, o que posso fazer?

  • O Windows EOL é \r\n.

  • Se você estiver usando arquivos com um EOL diferente, poderá convertê-los em EOLs do Windows usando o Menu "Editar"> "Conversão EOL".

  • Se você não está trabalhando com EOLs do Windows e não deseja convertê-los, use o seguinte:

    • Use em \nvez de \r\npara EOLs do Unix / OS X

    • Use em \rvez de \r\npara EOLs do Mac OS (até a versão 9)


Não sei nem me importo com o que EOLs meu arquivo usa, o que posso fazer?

  • Você pode usar \Rou (?:\r\n?|\n)ou em (?:\r?\n?)vez de \r\n. Isso contorna qualquer problema com os EOLs realmente usados ​​no arquivo.

  • Você também pode usar (?:\r?\n?|$). Essa expressão funcionará se não houver EOL na última linha do arquivo.


Leitura adicional


5
Você pode usar \ R para corresponder a qualquer quebra de linha.
— user694733

@ user694733 Por favor, explique? \rnão corresponde ao EOL no Windows. Se você remover, \nvocê ficará com linhas em branco. OP afirmou: "Quero removê-lo completamente, nem mesmo deixar uma linha vazia".
— DavidPostill

R. maiúsculo N ++ usa PCRE que tem isso como uma classe de caractere especial se minha memória me serve corretamente.
— user694733

@ user694733 Ah. ESTÁ BEM. Testei e funciona.
— DavidPostill

regex101.com é um site melhor para aprender regex que regexexr
— cat

14

A resposta aceita está correta, mas você nem sempre terá a regex pronta. Então, apresento uma solução mais simples.

  1. Ctrl+ F- clique na guia Marcar
  2. Defina "Encontre o que" para .
  3. Marque a opção "Bookmark line" (cortesia de Wrass)
  4. Modo de pesquisa = Normal
  5. Clique em Marcar tudo -> Você deverá ver um círculo azul ao lado dos números de linha marcados.
  6. Em seguida, navegue até o menu Pesquisa -> Favorito -> Remover linhas não marcadas.

Esta é uma alternativa simples e agradável; no entanto, convém mencionar que você também deve marcar a opção 'Linha de marcador' na caixa de diálogo Marcar. Não fazer isso resultará na remoção de todas as linhas.
— Wrass

Bom ponto, meu bloco de notas se lembrou da última vez, então eu esqueci disso.
— Zikato 22/02

Eu uso regex o tempo todo, mas ainda assim usaria esse método por sua simplicidade. Isenção de responsabilidade: Eu também uso muito as várias funções de marcador no Notepad ++.
— JPhi1618

Como você ficou insatisfeito com a sua formatação, enviei uma edição que acho mais agradável. Sinta-se à vontade para rejeitá-lo ou retroceder se não concordar.
— Jpmc26
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.