Editor

Aguardando entrada ou execução do regex…

Ações

?
?
?

Sobre Testador de Regex Online

Cole algum texto, escreva um padrão de regex, alterne flags e veja instantaneamente o que corresponde. Este testador de regex usa o mesmo motor RegExp dos ambientes de execução JavaScript modernos, então o que você vê aqui é o que obterá no seu código frontend, scripts Node.js ou validação do lado do servidor. Grupos de captura nomeados, lookarounds e modo Unicode são suportados quando seu ambiente de execução os suporta.

Por Que Usar Este Testador de Regex

  • Correspondência em tempo real com um modo "ao vivo" opcional para reexecutar enquanto você digita
  • Lista de correspondências estruturada com índice inicial, índice final, valor e grupos de captura nomeados
  • Suporte completo à sintaxe RegExp JavaScript/ECMAScript (mesmo mecanismo do seu ambiente de execução JS)
  • Controles de flags: g, i, m, s, u, y – combine e experimente com segurança
  • Insight básico de desempenho com tempo de execução por teste em milissegundos
  • Saída de resumo apenas em texto para copiar/colar rapidamente em tickets, documentos ou mensagens de commit
  • Excelente para aprendizado: prototipe padrões sem executar um projeto completo ou suite de testes
  • Ideal para tarefas diárias: análise de logs, validação, extração de URL/ID, limpeza rápida de dados
  • Lista de resultados tem limite suave para evitar travamento da UI ao corresponder textos grandes

🔧 Como Usar o Testador de Regex for regex-tester

1

1. Cole ou Digite Seu Texto de Teste

Adicione o texto no qual deseja pesquisar: logs, trechos, fragmentos CSV, HTML, JSON, qualquer coisa que seja texto simples.

2

2. Escreva Seu Padrão Regex

Digite a expressão regular **sem barras envolventes**. Por exemplo: <code>\b\w+@\w+\.\w+</code> para um padrão básico semelhante a email, ou <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> com grupos nomeados.

3

3. Defina as Flags (g, i, m, s, u, y)

Ative flags como <code>g</code> (global), <code>i</code> (case-insensitive) ou <code>m</code> (multilinha). Internamente, o testador constrói <code>new RegExp(pattern, flags)</code> exatamente como o JavaScript faz.

4

4. Inspecione Correspondências & Grupos

Revise cada correspondência com seu índice, índice final opcional e grupos de captura. Grupos nomeados aparecem como um mapa semelhante a JSON para que você possa copiá-los para fixtures de teste, parsers ou documentação.

5

5. Copie o Resumo

Use o resumo em texto como um relatório rápido: ele lista correspondências com índices e grupos, pronto para colar em tickets, comentários de revisão de código ou folhas de referência.

Sintaxe Regex & Detalhes do Mecanismo

Classes de Caracteres & Básicos

Blocos fundamentais suportados pelo mecanismo RegExp do JavaScript.

PadrãoSignificadoExemplo
.Qualquer caractere exceto quebras de linha (a menos que a flag <code>s</code> esteja ativa)<code>a.c</code> → corresponde a <code>abc</code>
\d, \w, \sDígitos, caracteres de palavra, espaços em branco<code>\d+</code> → <code>123</code>
\D, \W, \SVersões negadas das anteriores<code>\S+</code> → sequências sem espaços em branco
[abc]Conjunto de caracteres<code>[aeiou]</code> → uma única vogal
[^abc]Conjunto negado<code>[^0-9]</code> → não dígito
^, $Início e fim da entrada (ou linha com <code>m</code>)<code>^Hello</code>, <code>!$</code>

Quantificadores

Repetição de tokens anteriores, com comportamento ganancioso e preguiçoso.

PadrãoSignificadoExemplo
?0 ou 1 vez<code>colou?r</code> → corresponde a <code>color</code> e <code>colour</code>
*0 ou mais<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 ou mais<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Exatamente n<code>a{3}</code> → <code>aaa</code>
{n,}Pelo menos n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Entre n e m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Grupos, Lookarounds & Capturas Nomeadas

Recursos mais avançados fornecidos por motores JavaScript modernos.

RecursoSintaxeExemplo
Grupos de captura(...)<code>(\d{3})-(\d{2})</code> → área + sufixo
Grupos não capturadores(?:...)<code>(?:https?|ftp)://</code>
Retroreferências\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Lookaheads(?=...), (?!...)<code>\w+(?=! )</code> → palavra antes de <code>! </code>
Lookbehinds*(?<=...), (?<!...)<code>(?<=#)\w+</code> → texto após <code>#</code> (*em motores modernos)
Grupos nomeados(?<nome>...)<code>(?<ano>\d{4})</code> → <code>grupos.ano</code> nos resultados

Sinalizadores (Opções)

Os sinalizadores do testador mapeiam diretamente para os sinalizadores RegExp do JavaScript.

SinalizadorNomeEfeito
gGlobalEncontrar todas as correspondências em vez de apenas a primeira
iIgnorar maiúsculas/minúsculasCorrespondência sem distinção entre maiúsculas e minúsculas
mMultilinha<code>^</code> e <code>$</code> correspondem aos limites das linhas
sDotAll<code>.</code> também corresponde a quebras de linha
uUnicodeAtiva o modo Unicode e escapes de propriedade em motores modernos
yAderenteCorresponde apenas no índice atual (usado com <code>lastIndex</code>)

Desempenho e Segurança

O motor JavaScript subjacente executa regex de forma síncrona. Para manter a interface do usuário responsiva, o testador limita o número de correspondências coletadas (por exemplo, os primeiros 500 acertos no modo global). Isso ajuda a evitar sobrecarregar a interface, mas não substitui auditorias completas de desempenho para padrões complexos ou críticos.

Ferramentas de Regex na Linha de Comando

Uma vez que seu padrão funcione aqui, você pode reutilizar o mesmo ou regex semelhante no seu terminal, scripts ou trabalhos de CI:

Linux / macOS

Pesquisar com grep (regex estendida)

grep -E 'pattern' file.txt

Encontrar linhas que correspondem a um padrão dado

Pesquisar e substituir com sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Substituições em lote em arquivos de texto

Windows / PowerShell

Pesquisa com regex no PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Encontrar padrões de SSN no estilo americano em arquivos de log (exemplo)

Substituição com regex no PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Substituições simples baseadas em regex

Aplicações Práticas de Regex

Desenvolvimento Web e Frontend

  • Validar e-mails, nomes de usuário, slugs ou IDs personalizados em formulários
  • Extrair parâmetros de rota de URLs ou caminhos
  • Prototipar rapidamente padrões para validação no lado do cliente
// Validação básica de e-mail
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Parâmetros de rota: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Logs, Dados e Backend

  • Analisar timestamps e níveis de linhas de log
  • Normalizar espaços em branco e limpar textos confusos
  • Extrair IDs, e-mails ou referências de conteúdo não estruturado
// Colapsar espaços em branco repetidos
const normalized = text.replace(/\s+/g, ' ').trim();
// Correspondente simples de linha de log
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Limpeza de Dados e Scripts Rápidos

  • Remover tags ou atributos HTML indesejados antes da análise
  • Extrair todas as URLs, e-mails ou IDs de um bloco longo de texto
  • Preparar campos do conjunto de dados para importação em outro sistema

❓ Frequently Asked Questions

Por que minha regex não está encontrando nada?

Armadilhas comuns: 1) Caracteres especiais não escapados (como ., ?, +), 2) Esquecer a flag g ao esperar múltiplas correspondências, 3) Faltando âncoras (^, $) ou limites de palavra (\b), 4) Usar recursos que seu mecanismo JavaScript ainda não suporta (como algumas lookbehinds). Tente simplificar o padrão e adicionar partes gradualmente.

⏱️O que significa o tempo de execução (ms)?

Cada execução é cronometrada usando performance.now(). O valor é uma medição aproximada de execução única de quanto tempo a regex levou para executar na entrada atual. É útil para identificar padrões obviamente caros, mas não é um benchmark completo ou garantia de desempenho em produção.

🔍Qual é a diferença entre primeira correspondência e modo global?

Sem a flag g, o JavaScript retorna apenas a **primeira** correspondência (se houver). Com g, o testador usa input.matchAll() para coletar **todas** as correspondências (limitadas a um máximo seguro), incluindo índices e grupos de captura. Use o modo global sempre que se importar com múltiplas ocorrências.

🌍Isso suporta Unicode e escapes <code>\p{...}</code>?

Sim, quando seu mecanismo JavaScript suportar. Ative a flag u para entrar no modo Unicode, que desbloqueia coisas como \p{Letter} ou \p{Script=Greek} em navegadores modernos e versões recentes do Node.js.

⚠️Isso pode detectar backtracking catastrófico?

O testador pode indicar padrões lentos através do tempo de execução, mas não pode prevenir completamente o backtracking catastrófico: o mecanismo subjacente ainda é executado de forma síncrona. Use esta ferramenta como um sistema de alerta precoce, então faça benchmark e revise padrões complexos cuidadosamente em sua própria base de código.

Pro Tips

Best Practice

Construa sua regex em pequenas partes. Comece com algo simples que corresponda, depois adicione âncoras, grupos e quantificadores passo a passo.

Best Practice

Use grupos de captura nomeados (<code>(?<nome>...)</code>) sempre que possível. Eles tornam suas correspondências auto-documentadas e muito mais fáceis de ler durante revisões de código.

Best Practice

Tenha cuidado com <code>.*</code> e quantificadores aninhados. Eles podem causar backtracking pesado em entradas grandes. Torne os padrões mais específicos ou limite a repetição com <code>{n,m}</code>.

Best Practice

Ao depurar, remova temporariamente a flag <code>g</code> e foque na primeira correspondência para simplificar o modelo mental.

Additional Resources

Other Tools