Regex Tester

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

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

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.