Teste de expressões regulares
Teste expressões regulares JavaScript localmente com sinalizadores g/i/m/s/u/y, contagens de correspondência, captura e grupos nomeados, intervalos de linha-coluna e visualização de substituição nativa.
/
/g
Texto de teste
Caracteres
0 / 50,000
Resultados de correspondência
Insira um padrão para começar a combinar
Texto de substituição
Caracteres
0 / 50,000
Visualização de substituição
Início rápido
Cenários comuns
Extração de dados
use (\d{4}-\d{2}-\d{2}) para extrair datas e ([\w.]+@[\w.]+) para extrair endereços de e-mail
Validação de formato
escreva uma regex, cole vários exemplos e verifique rapidamente se o padrão corresponde exatamente ao formato alvo
Substituição em lote
use grupos de captura para reorganizar o conteúdo. Por exemplo, converta "Nome Sobrenome" em "Sobrenome, Nome" com o padrão (\S+)\s+(\S+) e a substituição $2, $1
Grupos nomeados
use (?<ano>\d{4})-(?<mês>\d{2})-(?<dia>\d{2}) para extrair datas e, em seguida, use $<ano>/$<mês>/$<dia> para reconstruí-las
Aprendizado de regex
experimente padrões diferentes e observe o comportamento das correspondências para entender visualmente quantificadores, âncoras e classes de caracteres
Tratamento multilinha
ative a flag m para que ^ e $ correspondam por linha, útil para logs, código e arquivos de configuração
Dicas de uso
Limitações e compatibilidade
Privacidade e segurança
Perguntas frequentes
Uma expressão regular (regex) é uma linguagem padrão para descrever estruturas de texto. Pense nisso como uma "pesquisa avançada" - em vez de pesquisar por uma palavra fixa, você pesquisa tudo que corresponde a uma regra.\n\nPor exemplo, \\d{4}-\\d{2}-\\d{2} corresponde a todas as datas no formato AAAA-MM-DD e [\\w.]+@[\\w.]+ corresponde aos endereços de e-mail. Regex é amplamente usado para: pesquisa e extração de texto (encontrar códigos de erro em logs), validação de formato (verificar números de telefone) e substituição de lote (converter formatos de data).\n\nQuase todas as linguagens de programação (JavaScript, Python, Java, Go, etc.) e muitas ferramentas (VS Code, grep, sed) suportam regex com sintaxe principalmente semelhante. Esta ferramenta usa o mecanismo JavaScript RegExp para testes e aprendizado on-line rápidos.
A regex JavaScript retorna apenas a primeira correspondência por padrão — este é um comportamento de especificação de linguagem, não uma limitação da ferramenta. Clique no botão g na barra de sinalizadores para ativar a pesquisa global e ver todas as correspondências.\n\nObserve a interação entre g e y: g verifica todo o texto do início ao fim, enquanto y (fixo) exige que cada correspondência comece exatamente onde a anterior terminou - se houver caracteres de lacuna entre as correspondências, y para na primeira lacuna. Normalmente, apenas ativar g sem y é suficiente.
As causas mais comuns são quatro: 1. Parênteses ou colchetes sem par: cada ( precisa de ), e cada [ precisa de ]. Mesmo que a IDE complete automaticamente, a ferramenta valida o padrão digitado. 2. Quantificadores no lugar errado: *, +, ?, {n} devem vir depois de algo repetível. Combinações como *+ ou ?* são inválidas; quantificadores não gulosos são escritos como *? ou +?. 3. Escape incompleto: uma \ sozinha no fim é inválida; ela precisa escapar um caractere específico, como \d, \n ou \\. 4. Propriedades Unicode sem a flag u: \p{L}, \p{Script=Han} e escapes semelhantes exigem a flag u nesta ferramenta.
Estas referências são da String.prototype.replace() do JavaScript: - $1, $2, ..., $99: conteúdo do grupo de captura correspondente. - $&: correspondência completa. - $`: texto antes da correspondência. - $': texto depois da correspondência. - $<name>: conteúdo de um grupo nomeado (?<name>...). Exemplo: se (\w+)\s(\w+) corresponder a “hello world”, a substituição $2-$1 produz “world-hello”. Para incluir um $ literal na substituição, escreva $$.
Motores regex variam entre linguagens principalmente em três pontos: 1. Sintaxe suportada: JavaScript não suporta recursão PCRE (?R), ramos condicionais (?(cond)yes|no) nem grupos atômicos (?>...). O módulo re do Python também não; o módulo externo regex suporta parte disso. Java suporta grupos atômicos, mas não recursão. 2. Unicode: em JavaScript, \w corresponde principalmente a letras latinas básicas, dígitos e sublinhado. Ativar u não faz \w corresponder automaticamente a caracteres chineses. Para letras Unicode, use property escapes como \p{L} com a flag u. 3. Quebras de linha: em Python, . não corresponde a \n por padrão, como em JavaScript. Pattern.DOTALL em Java se parece com a flag s do JavaScript. Use esta ferramenta para uma verificação rápida de JavaScript RegExp e confirme depois no motor real da linguagem de destino.