Testes e Depuração de Expressões Regulares: Do Básico a Padrões Eficientes

Texto

Por que Testar Regex Online?

Expressões regulares são poderosas, mas fáceis de errar na primeira tentativa. Um testador online ajuda você a:

  • Destacar correspondências em tempo real: Veja o que corresponde enquanto digita
  • Visualizar grupos de captura: Inspecione cada grupo com clareza
  • Alternar flags rapidamente: Alterne g / i / m / s sem reimplantar
  • Detectar erros de sintaxe instantaneamente: Padrões inválidos são sinalizados imediatamente

Tabela de Referência de Sintaxe Regex

Correspondência básica

Sintaxe Significado Exemplo Corresponde a
. Qualquer caractere (exceto nova linha) a.c abc, a1c
\d Dígito \d{3} 123
\w Caractere de palavra \w+ hello_1
\s Espaço em branco a\sb a b
[abc] Classe de caracteres [aeiou] a, e, i
[^abc] Classe negada [^0-9] não dígitos

Quantificadores

Sintaxe Significado Greedy / Lazy
* Zero ou mais a* / a*?
+ Um ou mais a+ / a+?
? Zero ou um a? / a??
{n,m} Entre n e m a{2,4}

Grupos e referências

Sintaxe Significado Exemplo
(abc) Grupo de captura (\d{4})-(\d{2})
(?:abc) Grupo sem captura `(?:http
\1 Retroreferência (\w)\1 corresponde a aa, bb
(?<name>) Grupo nomeado (?<year>\d{4})

Usando o Testador de Regex Online

Passos

  1. Abra o Testador de Regex
  2. Insira seu padrão no campo de regex
  3. Cole o texto de exemplo no campo de teste
  4. Escolha as flags (g global / i sem distinção de maiúsculas / m multilinha)
  5. Revise os destaques e detalhes de correspondência

Flags comuns

Flag Significado Padrão
g Encontrar todas as correspondências Apenas a primeira correspondência
i Ignorar maiúsculas/minúsculas Diferencia maiúsculas/minúsculas
m Modo multilinha Linha única
s . corresponde a novas linhas . não corresponde a novas linhas
u Modo Unicode

Armadilhas Comuns

1. Correspondência greedy

Texto: <div>hello</div><div>world</div>
Padrão: <div>.*</div>
Resultado: a string inteira corresponde como um bloco único!

Solução: <div>.*?</div>  ← correspondência lazy, duas correspondências separadas

2. Retrocesso catastrófico

// Perigoso: quantificadores aninhados causam retrocesso exponencial
/^(a+)+$/.test('a'.repeat(30) + 'b');
// Este teste pode levar segundos ou travar

// Solução: evitar quantificadores aninhados, ou usar grupos atômicos quando suportado

3. Esquecer de escapar caracteres especiais

Padrão: price.com     ← . corresponde a qualquer caractere
Solução: price\.com        ← corresponde apenas a price.com

Exemplos Práticos

Caso de uso Padrão
Telefone EUA (simplificado) ^\+?1?\d{10,11}$
Email (básico) ^[\w.-]+@[\w-]+\.[\w.]+$
URL ^https?:\/\/[\w.-]+(?:\.[\w]+)+[/\w.-]*$
Endereço IP ^(\d{1,3}\.){3}\d{1,3}$
Data YYYY-MM-DD `^\d{4}-(?:0[1-9]
Caracteres CJK [\u4e00-\u9fff]+

FAQ

O padrão funciona no testador mas não no código?

Verifique se esqueceu a flag g, ou se sua string contém novas linhas mas o padrão não tem m / s.

Como corresponder texto multilinha?

Use a flag s para que . corresponha a novas linhas, ou use [\s\S] em vez de ..


Resumo

Regex é essencial para desenvolvedores, mas a sintaxe é fácil de errar. Use o Testador de Regex para validar e depurar em tempo real. O ToolsKu também oferece Buscar e Substituir e Diff de Texto para um fluxo de trabalho de texto completo.

#正则表达式#Regex#文本处理#教程#调试