Localizar e Substituir com Regex
Reescreva texto com uma expressão regular e veja o resultado antes de aplicá-la em arquivos reais.
Localizar e Substituir com Regex Online
Localizar e substituir com uma expressão regular é uma das formas mais rápidas de limpar texto, e uma das mais fáceis de errar em mil linhas de uma vez. Esta página abre o Testador de Regex com um exemplo que funciona: o padrão Palavra repetida da Biblioteca de padrões, \b(\w+)\s+\1\b, e a substituição $1. A frase de exemplo volta em Resultado da substituição sem nenhuma palavra duplicada.
Como o exemplo funciona
(\w+) captura uma palavra, \s+ casa com o espaço ou a quebra de linha depois dela, e \1 pede a mesma palavra de novo. O \b em cada ponta impede que ele case dentro de palavras mais longas, então "the theory" fica intacto. Com a flag i, "This this" conta como repetição, e $1 mantém a primeira grafia: "This this is a a typo" vira "This is a typo".
Tokens de substituição
| Token | Insere |
|---|---|
$1, $2 | O texto daquele grupo numerado |
$<name> | O texto de um grupo nomeado, como (?<year>\d{4}) |
$& | A correspondência inteira |
$` | Tudo o que vem antes da correspondência |
$' | Tudo o que vem depois da correspondência |
$$ | Um cifrão literal |
Teste antes de substituir em massa
A maioria dos desastres de substituição vem de um padrão que casa com mais do que você queria. Cole uma amostra representativa, incluindo linhas que não podem mudar, e leia as correspondências destacadas antes de confiar no resultado. Duas armadilhas são comuns: um .* guloso vai até a última correspondência possível na linha, e sem a flag g só a primeira correspondência é substituída.
Palavras em outros alfabetos
Em JavaScript, \w e \b só conhecem as letras de A a Z, os dígitos e o sublinhado, então o exemplo deixa passar um "café" repetido ou uma palavra persa repetida. Com as flags giu, o padrão (?<![\p{L}\p{N}_])([\p{L}\p{N}_]+)\s+\1(?![\p{L}\p{N}_]) faz o mesmo trabalho em qualquer alfabeto.
Páginas relacionadas
O testador de regex JavaScript explica as flags e o motor por trás desta página, e a regex de URL é um bom padrão para substituir, por exemplo para transformar links soltos em Markdown com [$&]($&). A ferramenta completa, com os 15 padrões prontos, é o Testador de Regex.