Regex Tester
Understand Regex Tester
Este testador executa uma expressão regular sobre um texto de exemplo e mostra cada correspondência, sua posição e o conteúdo de cada grupo de captura.
How it works
O padrão é compilado com o motor RegExp do próprio navegador, então o que acontece aqui é exatamente o que acontece no Node e no navegador — sintaxe ECMAScript, não PCRE nem RE2. Esse motor faz backtracking: quando um ramo falha, ele volta atrás e tenta a alternativa seguinte, e é por isso que um quantificador dentro de outro, como (a+)+$, pode explorar um número exponencial de caminhos contra uma string longa que não casa. Isso é backtracking catastrófico, e o corte de dois segundos aqui existe para pegá-lo.
When to use it
- Entender por que um padrão de validação rejeita uma entrada que deveria aceitar.
- Extrair campos de linhas de log antes de se comprometer com o código de parsing.
- Conferir a numeração dos grupos de captura antes de ligá-la a uma string de substituição.
- Testar um padrão contra os casos incômodos — string vazia, texto não ASCII, várias linhas — em vez do caminho feliz.
Watch out for
- O testador sempre roda com a flag global para você ver todas as correspondências. Seu próprio código, com um regex não global, recebe só a primeira — e um regex global reutilizado entre chamadas carrega lastIndex de uma para outra, e é por isso que .test() pode alternar entre true e false sobre a mesma string.
- Um padrão que leva segundos aqui leva segundos em produção. Se ele rodar contra entrada fornecida pelo usuário em um servidor, isso é um vetor de negação de serviço, e um padrão fornecido pelo usuário é pior ainda.
- \d, \w e \b do JavaScript são apenas ASCII. Um padrão copiado de Python ou Java que dependa de classes com suporte a unicode vai ignorar em silêncio entradas fora do inglês.
- O ponto não casa com quebra de linha a menos que você acrescente a flag s, e ^ e $ ancoram a string inteira a menos que você acrescente m.
Not the right tool for: Validar endereços de e-mail. Todo regex para isso é errado ou ilegível — verifique se há um @ com algo dos dois lados e depois envie uma mensagem de confirmação.
Frequently Asked Questions
Qual variante de regex é usada?
Este testador usa o motor RegExp nativo do JavaScript, que segue a sintaxe de regex do ECMAScript. É o mesmo motor usado no Node.js e nos navegadores.
Quais flags são suportadas?
O JavaScript suporta: g (global), i (sem distinção de maiúsculas), m (multilinha), s (dotAll), u (unicode) e y (sticky). Informe-as no campo de flags.
Como capturar grupos?
Use parênteses para grupos de captura: (\w+). Grupos nomeados usam (?<name>\w+). Os resultados mostram tanto os valores indexados quanto os dos grupos nomeados.
How to Use Regex Tester
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.