Editor
Aguardando entrada ou execução do regex…
Ações
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. 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. 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. 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. 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. 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ão | Significado | Exemplo |
|---|---|---|
| . | 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, \s | Dígitos, caracteres de palavra, espaços em branco | <code>\d+</code> → <code>123</code> |
| \D, \W, \S | Versõ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ão | Significado | Exemplo |
|---|---|---|
| ? | 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.
| Recurso | Sintaxe | Exemplo |
|---|---|---|
| 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.
| Sinalizador | Nome | Efeito |
|---|---|---|
| g | Global | Encontrar todas as correspondências em vez de apenas a primeira |
| i | Ignorar maiúsculas/minúsculas | Correspondência sem distinção entre maiúsculas e minúsculas |
| m | Multilinha | <code>^</code> e <code>$</code> correspondem aos limites das linhas |
| s | DotAll | <code>.</code> também corresponde a quebras de linha |
| u | Unicode | Ativa o modo Unicode e escapes de propriedade em motores modernos |
| y | Aderente | Corresponde 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.txtEncontrar linhas que correspondem a um padrão dado
Pesquisar e substituir com sed
sed -E 's/pattern/replacement/g' input.txt > output.txtSubstituiçõ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.txtEncontrar 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.txtSubstituiçõ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?
., ?, +), 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)?
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?
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>?
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?
Pro Tips
Construa sua regex em pequenas partes. Comece com algo simples que corresponda, depois adicione âncoras, grupos e quantificadores passo a passo.
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.
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>.
Ao depurar, remova temporariamente a flag <code>g</code> e foque na primeira correspondência para simplificar o modelo mental.
Additional Resources
Other Tools
- Embelezador CSS
- Embelezador HTML
- Embelezador Javascript
- Embelezador PHP
- Seletor de Cores
- Extrator de Sprites
- Decodificador Base64
- Codificador Base64
- Formatador Csharp
- Formatador CSV
- Dockerfile Formatter
- Formatador Elm
- Formatador ENV
- Formatador Go
- Formatador GraphQL
- Formatador HCL
- Formatador INI
- Formatador JSON
- Formatador LaTeX
- Formatador Markdown
- Formatador Objective-C
- Php Formatter
- Formatador Proto
- Formatador Python
- Formatador Ruby
- Formatador Rust
- Formatador Scala
- Formatador de Script Shell
- Formatador SQL
- Formatador SVG
- Formatador Swift
- Formatador TOML
- Typescript Formatter
- Formatador XML
- Formatador YAML
- Formatador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visualizador de Cabeçalhos HTTP
- PDF para Texto
- Verificador de Classificação SERP
- Consulta Whois