Como usar: Testador de Expressões Regulares
- Digite seu padrão entre as barras ou escolha um em “Padrões comuns”. Você também pode colar um literal completo como
/\d+/g. - Alterne opções como
g(todas as correspondências),i(ignorar maiúsculas e minúsculas) oum(várias linhas). - Cole seu texto em “Testo de teste” — cada correspondência é destacada à medida que você digita.
- Dá uma olhada na aba “Correspondências” para ver as posições e os grupos de captura, ou abre a janela “Substituir” para ver uma prévia da substituição.
- Clique em “Copiar” para pegar a expressão regular como
/pattern/flags; o padrão e os sinalizadores também ficam na URL da página pra você compartilhar.
O que é um testador de expressões regulares?
Uma expressão regular (regex) é uma linguagem de padrões compacta para localizar e transformar texto — seja para validar um campo de e-mail, extrair IDs de logs, renomear arquivos ou limpar dados. Como um único caractere pode mudar o que um padrão identifica, escrever expressões regulares por tentativa e erro dentro do seu código é demorado. Um testador de regex mostra na hora o que um padrão corresponde, quais grupos de captura ele preenche e o que uma substituição produziria.
Esse testador usa o próprio mecanismo de expressões regulares em JavaScript (ECMAScript) do seu navegador, então os resultados são exatamente o que String.prototype.match, matchAll, replace e RegExp.test você vê no Chrome, Firefox, Safari, Node.js e Deno. Os padrões são executados em um worker em segundo plano com um limite de tempo, então um padrão que fique fora de controle não congela a página.
Sinalizadores de expressões regulares em JavaScript
| Sinalizador | Nome | Efeito |
|---|---|---|
g | global | Encontra todas as correspondências, em vez de parar na primeira. |
i | ignoreCase | /abc/i corresponde a “ABC”. |
m | multiline | ^ e $ encontra correspondências no início e no final de cada linha. |
s | dotAll | . também encontra quebras de linha. |
u | unicode | Trata pares substitutos (emojis) como um único caractere e permite \p{…} escapes de propriedade. |
y | sticky | Corresponde apenas em lastIndex — útil na criação de tokenizadores. |
Grupos de captura, grupos nomeados e substituições
Os parênteses capturam o texto com o qual combinam. No (\d{4})-(\d{2}) o grupo 1 é o ano e o grupo 2, o mês. Grupos nomeados tornam os padrões autoexplicativos: (?<year>\d{4}) estão disponíveis como match.groups.year no código e como $<year> em uma string de substituição. Por exemplo, substituir (?<y>\d{4})-(?<m>\d{2})-(?<d>\d{2}) por $<d>/$<m>/$<y> transforma 2026-10-25 em 25/10/2026. Use (?:…) quando precisar agrupar sem capturar.
Retrocesso catastrófico
Padrões com quantificadores aninhados, como (a+)+$ ou (\w+\s?)*$ podem levar um tempo exponencial em entradas que quase correspondem — uma causa clássica de navegadores travados e vulnerabilidades ReDoS em servidores. Se um padrão demorar mais de 1,5 segundo aqui, ele é interrompido e sinalizado. Corrija isso tornando as alternativas mutuamente exclusivas, substituindo .* por uma classe negada, como [^"]*, ou ancorando o padrão.
Dicas para padrões confiáveis
- Ancore os padrões de validação com
^…$, caso contrário,\d{5}também “valida”abc123456. - Faça escape de metacaracteres literais:
\.\?\(\[\$. - Prefira classes específicas em vez de
.*; elas são mais rápidas e correspondem exatamente ao que você quer dizer. - Expressões regulares não são muito adequadas para formatos aninhados como HTML ou JSON — use um analisador (ou nosso Formator de JSON).
- Quer comparar o texto antes e depois de uma substituição em massa? Cole os dois no Diff Checker.
Também pesquisado como: regex, regexp, verificador de expressões regulares, alternativa ao regex101, javascript regex, correspondência de expressão regular, substituição com expressão regular, guia rápido de regex.
Ferramentas que combinam com: Testador de Expressões Regulares
- JavaScript Formatter — Unminify and pretty-print JavaScript, JSON or JSX with your preferred indentation and brace style — or strip whitespace and comments with a verified minifier.
- URL Encode / Decode — Percent-encode text for safe use in URLs, decode encoded strings back to readable text, and break any URL down into its parts and query parameters.
- Slug Generator — Convert any title into a clean, lowercase URL slug — with proper transliteration of accents, umlauts and Cyrillic, optional stop-word removal and a bulk mode for whole lists.
- Remove Duplicate Lines — Paste a list to remove duplicate lines instantly.
Perguntas frequentes
Qual variante de expressão regular esse testador usa?
\A/\Z âncoras ou modificadores inline como (?i).Por que meu padrão só encontra uma correspondência?
g flag (global), o JavaScript para na primeira correspondência. Ative g para encontrar todas — o testador também te avisa quando estiver desativado.Como faço para comparar em várias linhas?
m flag para que ^ e $ trabalhar por linha, e a s flag (ou [\s\S]) se . também deve corresponder aos caracteres de nova linha.Meu texto de teste fica salvo ou é enviado?
Qual é uma boa expressão regular para validar endereços de e-mail?
^[^\s@]+@[^\s@]+\.[^\s@]+$ (ou a predefinição “Endereço de e-mail”). Os padrões totalmente compatíveis com a RFC 5322 são enormes e ainda assim não dão pra saber se a caixa de correio existe — manda um e-mail de confirmação pra checar isso.