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.)
Excelente artigo. Era exatamente o que eu procurava.
Obrigado!
Obrigado Marcos, é sempre bom ter um feedback dos leitores!
Ó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?
Olá Gilmar
Então, é só vc manter selecionado o item: Expressão Regular do Notepad ++
Coloca o caracter que vc quer localizar _ e dá um espaço em branco no item substituir:
https://rubular.com/r/i2jGn5IFAnQe8q
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
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
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?
Jefferson, teria que me mostrar os dados brutos para poder entender o que você quer modificar e em que contexto.
Ainda não entendi o que você quer fazer…