Correspondências
Resultado
Acha cores hexadecimais de CSS nos quatro tamanhos: #rgb como #fff, #rgba, #rrggbb como #6b36e8 e #rrggbbaa como #16141F80, em que os dois últimos dígitos são a opacidade. Aceita maiúsculas e minúsculas. Rode numa folha de estilos para reunir todas as cores antes de montar uma paleta.
Como usar
- Digite um padrão entre as barras ou cole um literal /padrão/flags completo. Toque em um padrão comum, como E-mail ou IPv4, para começar com um testado.
- Ative flags: g encontra todas as correspondências, i ignora maiúsculas, m aplica ^ e $ a cada linha, s faz o ponto incluir quebras de linha.
- Digite ou cole o texto de teste. As correspondências são destacadas enquanto você digita e listadas abaixo com posição e grupos.
- Vá para Substituir e use $1, $<nome> ou $& na substituição para ver o resultado ao vivo. Toque em qualquer correspondência, grupo ou resultado para copiar.
- É o motor de regex JavaScript (ECMAScript) do seu navegador, o mesmo do Node.js, Chrome e Deno. Suporta lookbehind, grupos nomeados e classes Unicode \p{…}.
- A busca roda em segundo plano e para após 1 segundo: um padrão com backtracking catastrófico mostra um erro em vez de travar a página.
- Na substituição, \n e \t inserem uma quebra de linha ou uma tabulação. $$ insere um cifrão.
- Ative a flag d para ver a posição inicial e final de cada grupo.
- Links compartilhados incluem o padrão e as flags, nunca o seu texto de teste.
Flags que mudam o resultado
g encontra todas as correspondências em vez da primeira, i ignora maiúsculas, m faz ^ e $ valerem em cada quebra de linha, s deixa o ponto aceitar quebras de linha, u ativa Unicode completo e as classes \p{…}, y só procura em lastIndex e d devolve os índices de início e fim de cada grupo. Esquecer o g é o motivo mais comum de um padrão parecer achar só um resultado.
Como ler um padrão
\d é um dígito, \w uma letra, dígito ou sublinhado, \s um espaço em branco e \b um limite de palavra. Quantificadores repetem o item anterior: * é 0 ou mais, + é 1 ou mais, ? é 0 ou 1 e {2,4} é de 2 a 4 vezes. Um ? depois do quantificador o torna preguiçoso, então <.+?> para no primeiro >. Parênteses capturam um grupo; (?<ano>\d{4}) dá um nome e (?:…) agrupa sem capturar.
Lookaheads (?=…) e (?!…) e lookbehinds (?<=…) e (?<!…) verificam o que vem depois ou antes sem consumir. Por exemplo, \d+(?= USD) acha 120 em 120 USD, mas não em 120 EUR.
Evitando padrões lentos
Quantificadores aninhados como (a+)+ ou (.*)* podem fazer backtracking exponencial num texto que quase corresponde e travar um servidor: é o problema chamado ReDoS. Aqui a busca roda em segundo plano com limite de um segundo, então você vê um erro em vez de um travamento. Prefira classes específicas como [^,]* a .* e ancore com ^ e $ ao validar um valor inteiro.
Perguntas frequentes
Qual sabor de regex este testador usa?
JavaScript (ECMAScript), o motor do seu navegador. Ele bate com Node.js, Deno e TypeScript. A maior parte da sintaxe é igual à de PCRE, Python e Java, mas recursos como quantificadores possessivos ou grupos atômicos mudam.
Por que minha regex só acha uma correspondência?
Porque a flag g (global) está desligada. Sem g, o JavaScript para na primeira. Ative o g para destacar e listar todas.
Como uso grupos de captura na substituição?
Escreva $1, $2 e assim por diante para grupos numerados, $<nome> para grupos nomeados e $& para a correspondência inteira. $$ insere um cifrão literal.
Como procuro um ponto ou colchete literal?
Escape com uma barra invertida: \. acha um ponto, \( um parêntese e \[ um colchete. Dentro de uma classe de caracteres quase todo símbolo é literal, então [.] também acha um ponto.
Uma regex consegue validar e-mails perfeitamente?
Não. As regras completas das RFC 5321 e 5322 são amplas e complexas demais para um padrão prático. Use uma regex simples para pegar erros de digitação e confirme o endereço enviando um e-mail.
Meu texto de teste é enviado para algum lugar?
Não. A busca acontece no navegador. Links de compartilhamento levam só o padrão e as flags, nunca o texto testado.