Sobre a ferramenta: Testador de regex
Uma expressão regular (regex) é uma pequena linguagem de padrões para encontrar ou substituir trechos de texto que seguem uma regra: validação de formulários, análise de logs, localizar e substituir em massa. Este testador usa o motor de regex do JavaScript do seu navegador, então o resultado é exatamente o mesmo que no seu código JavaScript ou TypeScript.
A busca roda em uma thread separada (Web Worker). Se um padrão mal escrito demorar demais, ele é interrompido automaticamente após 1,5 segundo e a página não trava.
Como usar
- Escolha um exemplo em Padrões comuns ou digite sua própria expressão. Não é preciso colocar as barras (/) em volta.
- Ative ou desative as flags de que precisar (g, i, m, s, u, y).
- Digite o texto de teste: as correspondências ficam destacadas e a lista abaixo mostra a posição e o valor de cada grupo.
- Use $1, $<nome> ou $& em Substituição para ver como o texto ficaria.
Guia rápido de regex
| Sintaxe | Significado | Exemplo |
|---|---|---|
| \d \w \s | dígito / letra, dígito ou _ / espaço | \d{5} |
| . | qualquer caractere, exceto quebra de linha (incluída com a flag s) | a.c |
| * + ? {n,m} | 0 ou mais / 1 ou mais / 0 ou 1 / de n a m vezes | \d{3,4} |
| ^ $ | início / fim (de cada linha com a flag m) | ^\d+$ |
| [áãçé] | classe de caracteres – \w não inclui acentos nem ç! | [A-Za-zÀ-ú]+ |
| ( ) (?: ) | grupo de captura / grupo sem captura | (\d{5})-(\d{3}) |
| (?<nome> ) | grupo nomeado | (?<year>\d{4}) |
| (?= ) (?! ) | lookahead / lookahead negativo | \d+(?=\s?reais) |
O que cada flag faz
- g (global): encontra todas as correspondências, não só a primeira.
- i (ignoreCase): não diferencia maiúsculas de minúsculas.
- m (multiline): ^ e $ correspondem ao início e ao fim de cada linha.
- s (dotAll): o ponto (.) também corresponde a quebras de linha.
- u (unicode): trata um emoji como um único caractere e permite \p{…}, como \p{L} para todas as letras, inclusive acentuadas.
- y (sticky): só tenta corresponder na posição atual (lastIndex).
Cuidado com o backtracking catastrófico (ReDoS)
Padrões com repetições aninhadas como ^(a+)+$ podem levar um tempo exponencial em textos que não correspondem e travar um servidor — é o chamado ataque ReDoS. Se aqui der tempo esgotado, remova o aninhamento, por exemplo trocando (a+)+ por a+.
Perguntas frequentes
O padrão de CPF verifica se o número é válido?
Não. A expressão regular verifica apenas o formato (000.000.000-00). Os dígitos verificadores precisam ser calculados por um algoritmo, o que uma regex não faz. Por privacidade, não digite CPFs reais — de qualquer forma, nada é enviado a um servidor.
Os resultados são iguais aos de Python, Java ou PCRE?
A sintaxe básica é quase a mesma, mas há diferenças nos detalhes. Python escreve grupos nomeados como (?P
Por que \w não encontra letras acentuadas?
No JavaScript, \w cobre só A–Z, a–z, 0–9 e _. Para palavras em português use [A-Za-zÀ-ú] ou, com a flag u, a classe \p{L}.
O que acontece quando há muitas correspondências?
São buscadas e destacadas até 5.000 correspondências; a tabela mostra as 300 primeiras.