Localizar e substituir texto no Notepad ++ usando Regex – Expressão Regular

Nestes post vamos tentar passar algumas dicas de como usar Expressão Regular usando Notepad ++. No dia a dia é muito comum para desenvolvedores fazerem modificações em massa, e acaba sempre usando a ferramenta de forma manual. Nosso objetivo é torna mais fácil e rápido as alterações.

Alguns detalhes que você deve cuidar para utilizar a ferramenta Notepad ++

Em todos os exemplos, use Localizar e substituir (Ctrl + H) para substituir todas as correspondências pela string desejada ou (sem string).

Certifique-se de que o botão de opção ‘Expressão regular’ esteja definido.

1. Removendo espaços em branco

Como remover no Notepad++ espaços em branco nos textos e códigos. Neste exemplo, substituímos os espaços em branco e as guias entre os pares de strings ‘> <‘

Veja o texto de Expressão Regular: https://rubular.com/r/GKTqfI34My78LT

Expressão de correspondência Regex: (Desative a quebra de linha para que você possa vê-la mesclada em uma linha)

>[ \t]<

No campo Substituir use:

><

2. Insira uma nova linha para cada linha de texto

Veja o teste na expressão regular: https://rubular.com/r/VSwfp0CvIV4RJO

Campo Localizar:

(.)$

Campo Substituir:

$1\n

3. Removendo linhas em branco

Veja o teste na expressão regular: https://rubular.com/r/q09H3O3TBSKbWo

Campo Localizar:

^[ \t]*$\r?\n*

Campo Substituir:





4. Quebrar a lista separada por vírgula em linha

Substitua a vírgula de uma lista por uma quebra de linha.

Veja o teste de expressão regular: https://rubular.com/r/O0rTGd84xjQqhB

Campo Localizar:

,[ \t]+

Campo Substituir:

\n

5. Remova palavras duplicadas

Campo Localizar:

\b(\w+)\s+\1\b

Campo Substituir:

\1

6. Deixar apenas a primeira palavra de cada linha

Campo Localizar:

^([^ \t]+).*

Campo Substituir:

\1

7. Deixar apenas a última palavra de cada linha

Neste exemplo deixamos apenas a última palavra e colocamos entre aspas. bastas tirar as aspas no código do campo Substituir se não for necessário.

Campo Localizar:

(.* )(\w+)$

Campo Substituir:

'$2'

8. Substitua todas as linhas duplicadas por uma única linha

Campo Localizar:

(?sm)(^[^\r\n]*)[\r\n](?=.*^\1)

Campo Substituir:





9. Insira todo o texto em uma única linha (minificar o HTML no Notepad sem plugin)

Para quem gostaria de minificar o HTML usando o Notepad++ esta é uma grande dica de uso:

Depois de executado você pode usar o item 3 para limpar os espaços em excesso.

Campo Localizar:

\R

Campo Substituir:





10. Substitua a primeira linha no texto

https://rubular.com/r/CCDSaAMzkSLqdj

Campo Localizar:

\A.*

Campo Substituir:





11. Remova caracteres indesejados

Podemos querer remover todos os caracteres especiais e deixar letras e números. Para caracteres alfanuméricos, pontos finais, dois pontos/ponto, vírgula, espaços, tabulações, novas linhas, é melhor você testar antes de executar, utilize esta ferramenta:

https://rubular.com/r/WbMCcWymgmRv5S

No exemplo do link, tentei retirar apenas os caracteres < e >. Utilizei o escape ( contra barra \ ) para não pegar os caracteres que eu não queria retirar do código.

[^0-9a-zA-Z\;\:\.\=\"\-\'\$\#\%\\/\!\,\s\t\n]+

No final da expressão regular o \s – corresponde a qualquer caractere de espaço em branco; \t – indica o Tab; \n – indica quebra de linha. Você pode substituir os 3 por [:space:] (Corresponde a todos os caracteres de espaço em branco, incluindo espaços, tabulações e quebras de linha).

Para palavras com acentuação você pode usar à-úÀ-Ú

[^0-9a-zA-Zà-úÀ-Ú\;\:\.\=\"\-\'\$\#\%\\/\!\,\s\t\n]+

Na imagens abaixo é um exemplo de como retirar todos os caracteres especiais e deixar apenas letras e números.

Campo Localizar:

[^0-9a-zA-Z \t\n]+

Campo Substituir: (Digite a tecla espaço para não deixar as palavras juntas)

 

12. Converter palavras para minúscula, exceto para siglas e abreviações

Podemos querer garantir que o texto seja convertido em letras minúsculas, exceto para acrônimos e abreviaturas que são mantidos em letras maiúsculas.

Campo Localizar:

\b(?![AZ]+\b)[a-zA-Z]+

Campo Substituir:

\L$0

Entenda alguns caracteres usados na Expressão Regular:

\n
quebra de linha
\t
Tab
\d
Um dígito no intervalo de 0-9 (um número)
\D
Não é um dígito. Qualquer coisa que não seja um número (incluindo espaços).
\l
Uma letra minúscula.
OBSERVAÇÃO: isso retornará a “um caractere de palavra” se a opção de pesquisa “Match case” estiver desativada.
\L
Não é uma letra minúscula.
\u
Uma letra maiúscula.
\U
Não é uma letra maiúscula.
\w
Um caractere de palavra, que é uma letra, dígito ou sublinhado. Isso parece não depender do que o componente Scintilla considera como caracteres de palavras. O mesmo que [[:palavra:]].
\W
Não é um caractere de palavra.
\s
Um caractere de espaçamento: contagem de espaço, EOLs e tabulações.
\S
Não é um espaço.
\h
Espaçamento horizontal. Isso corresponde apenas ao espaço, tabulação e alimentação de linha.
\H
Não é espaço em branco horizontal.
\v
Espaço em branco vertical.
\V
Não é espaço em branco vertical
$
Aplica-se apenas ao caractere no final de uma linha. (ex. ‘!$’ substituiria todos os pontos de explicação no final de uma linha.)
^
Online aplica-se ao caractere no início de uma linha (ex. ‘^<p>’ substituiria qualquer ‘<p>’ no início de uma linha.)

Gostou do Assunto? Compartilhe com seus amigos!

8 comentários em “Localizar e substituir texto no Notepad ++ usando Regex – Expressão Regular”

  1. Ótimo conteúdo.
    Porém, tenho uma situação que não consegui imaginar uma maneira de resolver. Tenho o texto:
    <book navtitle="Propriedades_Por_Empresa_do_Módulo_Fiscal"
    desse texto queria substituir o _ por um espaço, mas o texto é só um dos que tem esse caractere, existem vários outras linhas com essa característica que preciso substituir apenas o _ pelo espaço.
    Tens uma sugestão?

    Responder
  2. Boa tarde,

    Consigo substituir todos os strings dentro de todo cadastro que contenha “MDF” no ????

    segue exemplo de um cadastro:

    ##%00 – MATERIAIS BASSANI%MDF%DURATEX%CARVALHO AVELA
    %DURATEX_5A639F2E
    1
    1
    0
    1
    1
    0
    0.8
    0
    0
    0
    0
    0
    0
    1
    1
    1
    1200
    1200
    0
    0
    1 1 1
    0.1 1 1 1
    0.1
    1 1 1
    0
    %CARVALHOAVELA_5528442F
    6
    NONE
    NONE
    %CARVALHO AVELA
    NONE
    NONE
    0
    0
    1
    0
    0
    0
    1
    1
    4
    2.7499
    1.84009
    0
    NONE
    4
    0.05
    0.05
    0
    1
    1 1 1
    0
    NONE
    0

    Responder
    • Não entendi o que você quer mudar.

      Mas basta Pressione Ctrl + H para abrir a janela “Substituir”.
      No campo “Localizar”, insira o seguinte:

      MDF

      No campo “Substituir por”, insira a string q vc quer incluir, nosso caso:

      EXEMPLO

      Responder
      • o texto foi todo desconfigurado e faltando palavras… tudo oq estava entre “”, sumiu ao publicar… ficou sem sentido mesmo…

        mas vou tentar explicar…

        tenho um cadastro estruturado dentro de “material” “/material”, e dentro de cada um desse que contiver “MDF” no nome, gostaria de substituir o valor do campo “density” “/density”

        deu pra entender?

        Responder

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.