Testador de regex — expressões regulares JavaScript
Construa uma expressão regular e veja-a casar (ou falhar) com sua string de teste em tempo real. Grupos de captura, flags e prévia de substituição, tudo ao vivo; nada sai do seu navegador.
Construa uma expressão regular e veja-a casar (ou falhar) com sua string de teste em tempo real. Grupos de captura, flags e prévia de substituição, tudo ao vivo; nada sai do seu navegador.
Reach out at <<hello@example.com>> or <<support@utility.test>> for help.
Uma expressão regular (regex) é uma pequena linguagem para descrever padrões em texto. Com poucos caracteres você consegue extrair e-mails de um parágrafo, validar que um CEP segue o formato de um país, ou reescrever cada identificador snake_case de um arquivo em camelCase. Engines JavaScript modernas compilam uma regex uma vez e a executam tão rápido quanto um loop apertado.
Este testador usa a implementação RegExp nativa da plataforma, então tudo que funciona aqui funciona também em tempo de execução em Node, Deno, Bun e todos os navegadores modernos. As flags g, i, m, s, u e y mudam a semântica de match; os grupos de captura (os parênteses no padrão) coletam substrings que você pode referenciar na substituição como $1, $2 etc.
Regex JavaScript / ECMAScript (a mesma engine contra a qual seu código vai rodar). Isso significa que lookbehinds, grupos nomeados (?<nome>…) e Unicode property escapes \p{…} funcionam todos. Funcionalidades exclusivas do PCRE como padrões recursivos não são suportadas.
Escape com barra invertida: \., \?, \(, \). Dentro de uma classe de caracteres [.] o ponto já é literal, então [.?] casa um ponto literal ou um ponto de interrogação.
.* é ganancioso — agarra o máximo possível e então faz backtrack. .*? é preguiçoso — agarra o mínimo possível e então expande. Preguiçoso para casar conteúdo entre marcadores; ganancioso para casar linhas inteiras.
Se você usa a flag global (g) e reutiliza o mesmo objeto RegExp, lastIndex avança após cada exec(). Resete com regex.lastIndex = 0, ou crie uma nova RegExp a cada chamada. Este testador reseta para você entre renders.
Não. Tudo roda no seu navegador via a engine RegExp nativa. Suas entradas nunca tocam nossos servidores, então o testador é seguro até com dados sensíveis como uma linha de log contendo tokens.
Onde recorrer a uma regex se paga em segundos.
Um e-mail, um CEP, um número de telefone — uma regex apertada se escreve mais rápido que um parser e basta quando você só quer um sanity check antes de enviar os dados adiante.
Puxe request IDs, IPs ou status codes de um stream de logs sem parsear JSON. Grupos de captura te dão os campos diretamente.
Renomear uma função, mudar um estilo de aspas ou atualizar uma chamada de API depreciada numa codebase inteira pipando ripgrep no sed — ambos falam regex.
A maioria dos editores (VS Code, JetBrains, Vim) traz busca-e-substituição por regex. Teste o padrão aqui primeiro para evitar corromper um arquivo em massa.
Hábitos que mantêm regexes manuteníveis.
Se um valor deve ocupar um campo inteiro, ancore com ^ no começo e $ no fim. Sem âncoras, /\d+/ também casa dentro de 'abc123def' — geralmente não é o que você quer para validação.
[abc] é mais rápido e mais claro que (a|b|c). Use alternação só quando as alternativas têm múltiplos caracteres.
JavaScript não tem a flag verbose, mas você pode construir o padrão a partir de um literal de string distribuído em várias linhas e juntá-lo. Para padrões complexos, esse é um ganho de legibilidade muito maior que uma megalinha.
Não tente parsear HTML, JSON ou qualquer coisa com estrutura aninhada. Use um parser de verdade (DOMParser, JSON.parse, uma AST). Regex brilha em padrões textuais planos, não em dados estruturados em árvore.