Testador de Regex
- Escreva o padrão, sem as barras delimitadoras.
- Ative as flags necessárias: g, i, m, s, u ou y.
- Cole o texto de teste. Os matches aparecem em tempo real, com a posição de cada um e os grupos capturados.
- Se o padrão tiver erro de sintaxe, a ferramenta avisa em vez de tentar interpretar.
- g — busca todas as ocorrências, não apenas a primeira.
- i — ignora maiúsculas e minúsculas.
- m — faz ^ e $ casarem com início e fim de cada linha, não do texto inteiro.
- s — faz o ponto casar também com quebra de linha.
- u — ativa o modo Unicode, necessário para \p{...} e para tratar emoji corretamente.
- y — ancora a busca exatamente na posição atual, sem avançar procurando.
Parênteses criam um grupo capturado, numerado da esquerda para a direita. Eles aparecem na lista de grupos de cada match.
Grupos nomeados usam a forma (?<nome>...) e ficam mais legíveis quando o padrão cresce — especialmente ao extrair data, valor ou identificador de um texto estruturado.
Se você só precisa agrupar para aplicar um quantificador, sem guardar o resultado, use (?:...). Isso evita capturas inúteis e deixa a expressão mais rápida.
Quantificadores aninhados como (a+)+ podem provocar backtracking catastrófico: em uma entrada que não casa, o motor testa um número explosivo de combinações e trava. É a base dos ataques conhecidos como ReDoS.
A ferramenta interrompe a varredura após 10 mil matches, o que protege a interface, mas não substitui escrever um padrão bem formado.
Padrões que casam string vazia recebem tratamento especial para não gerar laço infinito — o cursor avança manualmente quando isso acontece.
Este testador usa o motor de expressões regulares do JavaScript. Sintaxes de PCRE, Python ou Go podem divergir, principalmente em lookbehind e em classes Unicode.
Perguntas frequentes
Não. Digite apenas o padrão. As flags são escolhidas separadamente, não no fim da expressão.
Porque cada linguagem usa um motor diferente. O JavaScript não suporta algumas construções de PCRE, e o comportamento de lookbehind e de classes Unicode varia bastante entre implementações.
O capturado, com (...), guarda o trecho para você usar depois. O não capturado, com (?:...), só agrupa para aplicar quantificador ou alternância, sem guardar nada.
É um limite de proteção. Padrões muito abertos sobre textos grandes gerariam resultados demais e travariam a página.
Não. O padrão e o texto são processados no seu navegador e nada é registrado.