Testador Regex
Texto de correspondência de padrão de expressões regulares para validação, pesquisa-substituição e análise de log. Teste padrões com destaque ao vivo antes de entrar no código de produção - evite surpresas catastróficas de retrocesso na entrada do usuário.
Padrão
Flags
Texto de teste
Saída
[0] Hello
[6] world
[12] 123
Como testar um regex
1. Digite o padrão regex (sem barras externas ou com sinalizadores).
2. Definir sinalizadores: g global, i sem distinção entre maiúsculas e minúsculas, m multilinha.
3. Colar texto de amostra na string de teste área.
4. Revise correspondências, capture grupos e substitua a visualização, se disponível.
Exemplos de Regex
Validação de e-mail
^[\\w.-]+@[\\w.-]+\\.\\w+$ captura e-mails simples - não é perfeito para RFC, mas é útil para formulários.
Extrair datas ISO
\\d{4}-\\d{2}-\\d{2} encontra 2024-03-15 nas linhas de log para substituição do grep.
Slugify helper
Substitua [^a-z0-9]+ por hífen para slug de URL da string de título.
Quando regex ajuda
• Ao validar strings estruturadas (telefone, código postal).
• Ao analisar logs semiestruturados.
• Ao aprender grupos de captura e lookahead.
Quando evitar regex
• Ao analisar HTML ou JSON - use o adequado analisadores.
• Quando regex se torna ilegível - dividido em lógica de código.
• Quando ReDoS arrisca em padrões fornecidos pelo usuário no servidor - tempo limite e comprimento limite.
Reconhecimento de ReDoS
Quantificadores aninhados como (a+)+ na CPU de travamento de string maligna - evite regex do usuário no servidor ou use mecanismos seguros com tempos limite.
Validar vs. extract
Padrão ancorado ^...$ valida a string inteira; não ancorado encontra substring em qualquer lugar.
Substituir nos editores
O código VS usa regex JS semelhante em localizar-substituir - teste aqui e cole o padrão.
Perguntas frequentes
Qual tipo de regex?
JavaScript RegExp - existem diferenças de PCRE (o suporte de pesquisa varia de acordo com o mecanismo versão).
Sinalizador global g?
Encontra todas as correspondências, não apenas first - testStateful com lastIndex em JS.
Escape de caracteres especiais?
. * + ? [ ] ( ) { } | \\ ^ $ precisa de escape para correspondência literal.
Grupos de captura?
Parênteses ( ) criam grupos numerados acessíveis em substituição $1 $2.
Local?
Sim.
Multiline ^ $?
m sinalizador faz com que ^ $ corresponda aos limites da linha e não à string inteira.