Como usar
- Digite a expressão regular no campo do padrão (sem as barras
/…/— só o padrão em si). - Ligue ou desligue as flags: g para todos os matches, i para ignorar maiúsculas/minúsculas, m para
^/$por linha, s para o.incluir quebra de linha, u para Unicode, y para sticky. - Cole ou digite o texto de teste. Os matches aparecem destacados enquanto você digita; a lista abaixo mostra cada match, o índice e os grupos de captura (numerados e nomeados).
- Use Copiar matches para colocar cada match completo na área de transferência (um por linha). Limpar zera padrão, texto e flags.
- A Explicação do padrão quebra a regex em partes e diz, em português, o que cada uma casa.
- Em Código, escolha JavaScript, Python, Java, C#, PHP ou Go para ter o código pronto para colar, com o padrão e as flags, e avisos sobre o que essa linguagem não aceita.
Tudo roda no navegador. O padrão e o texto não são enviados a nenhum servidor e nunca vão para a URL da página.
Para que serve
Expressões regulares aparecem em validação de formulário, filtro de log, busca e substituição no editor, gateways de API e asserts de teste. Escrever o padrão de cabeça é fácil; provar contra um texto real é onde o erro aparece — ponto sem escape, quantificador guloso, flag esquecida. Um testador ao vivo encurta esse ciclo: mude o padrão, veja o destaque, confira os grupos, corrija.
A página serve a quem desenvolve, faz QA ou depura um filtro. Dá para colar um pedaço de log, uma lista de e-mails ou um trecho de HTML e afiar a expressão até o destaque bater com o esperado.
Os matches usam o motor JavaScript do navegador — as mesmas regras do front-end e do Node. Outros motores (PCRE, .NET, re do Python, RE2 do Go) diferem em detalhes, e o painel de código avisa as diferenças conhecidas.
Como funciona
A ferramenta monta um RegExp com o padrão e as flags marcadas. A cada alteração, aplica a expressão no texto. Com a flag g coleta todos os matches com String.prototype.matchAll; sem g (mesmo com y), mostra só o primeiro — o mesmo comportamento de um exec sem global. Padrão inválido mostra a mensagem de erro do navegador ao lado do Kitto confuso.
O destaque envolve cada trecho encontrado. Matches vazios (padrões que podem casar zero caracteres) também são marcados para você ver onde o motor parou. A busca roda numa thread separada (um Web Worker) com tempo limite de 2 segundos: se o padrão demorar mais, ela é interrompida e aparece um aviso, então a aba não trava. A lista mostra no máximo 500 matches.
O painel Código reescreve o padrão para cada motor: grupos nomeados viram (?P<nome>…) no Python e no Go, \u{…} vira \x{…} onde precisa, [^] vira [\s\S], e o padrão vai para o tipo de string com menos escapes (raw string, verbatim, crases). O que um motor não tem — lookaround e referência a grupo no Go, lookbehind de tamanho variável no Python e no PHP, a flag y fora do JavaScript — aparece como aviso acima do código.
Perguntas frequentes
O padrão ou o texto vai para um servidor?
Não. Compilar a expressão, achar matches, destacar e copiar acontecem no seu dispositivo. Nada entra na URL nem é enviado por esta página.
Por que aparece só um match?
Ligue a flag g (global). Sem ela, as APIs de regex do JavaScript devolvem só o primeiro match — o testador segue essa regra para espelhar o que seu código faria.
É a mesma regex do Python ou do PHP?
O testador roda o motor JavaScript, e a maior parte dos padrões do dia a dia se comporta igual nas outras linguagens. Escolha a sua em Código: ele converte a sintaxe e avisa o que não funciona lá. Mesmo assim, confirme padrões críticos na linguagem que você publica.
O que são grupos de captura?
Parênteses (…) guardam um pedaço do match. Grupos numerados aparecem como Grupo 1, Grupo 2 etc.; (?<nome>…) aparece como grupo nomeado. É o que $1 / match[1] / groups.nome expõem no código.
Um padrão ruim pode travar o navegador?
Não. Padrões muito aninhados ou ambíguos, como (a+)+$, podem levar tempo exponencial (backtracking catastrófico). Aqui a busca roda num Web Worker: depois de 2 segundos ela é interrompida e aparece um aviso, enquanto a página continua respondendo. Se isso acontecer, simplifique o padrão; em produção, o mesmo padrão poderia travar um servidor também.
É seguro colar dados sensíveis?
Nesta página o conteúdo fica no navegador. Ainda assim, evite colar segredos reais em computador compartilhado; use amostras anonimizadas quando puder.