raatools/

Testador Regex

Teste padrões regex com correspondência em tempo real e flags.

O que são expressões regulares?

As expressões regulares (regex ou regexp) são padrões usados para encontrar combinações de caracteres em texto. São uma das ferramentas mais poderosas na programação para pesquisa, validação, extração e transformação de texto. Todas as principais linguagens de programação suportam expressões regulares, e são essenciais para tarefas como validação de formulários, análise de logs e limpeza de dados.

Um padrão regex descreve um conjunto de strings usando sintaxe especial. Os padrões simples correspondem a texto literal, enquanto metacaracteres como . (qualquer caractere), * (zero ou mais) e + (um ou mais) adicionam flexibilidade. O agrupamento com parênteses, a alternância com | e as classes de caracteres com [] permitem construir regras de correspondência precisas para praticamente qualquer padrão de texto.

Como utilizar o testador de regex

Insira um padrão de expressão regular no campo de padrão, selecione as flags desejadas (g, i, m, s) e cole o texto para testar. A ferramenta realça todas as correspondências em tempo real e apresenta os grupos de captura para cada correspondência. Use isto para desenvolver e depurar padrões regex antes de os incorporar no código.

Padrões regex comuns

  • Endereços de e-mail: ^[^\s@]+@[^\s@]+\.[^\s@]+$ — corresponde a formatos de e-mail padrão.
  • URLs: https?://\S+ — corresponde a URLs que começam por http ou https.
  • Endereços IPv4: corresponde ao formato decimal com pontos padrão como 192.168.1.1 usando quantificadores de dígitos.
  • Datas: corresponde a datas no formato AAAA-MM-DD usando padrões de ano de quatro dígitos e de mês e dia de dois dígitos.
  • Palavras com maiúscula: [A-Z][a-z]+ — corresponde a palavras que começam por uma letra maiúscula.

Flags regex explicadas

  • g: g (Global): Encontra todas as correspondências no texto, não apenas a primeira.
  • i: i (Sem distinção de maiúsculas/minúsculas): Faz o padrão corresponder independentemente das maiúsculas e minúsculas.
  • m: m (Multilinha): Faz ^ e $ corresponderem ao início e fim de cada linha, não apenas da string inteira.
  • s: s (Dotall): Faz o metacaractere . corresponder também a caracteres de nova linha.

Grupos de captura

Os parênteses () criam grupos de captura que extraem partes específicas de uma correspondência. Cada grupo é numerado a partir de 1. Por exemplo, o padrão (\w+)@(\w+\.\w+) aplicado a "user@example.com" captura "user" no grupo 1 e "example.com" no grupo 2. Os grupos nomeados com (?<nome>...) tornam os padrões complexos mais legíveis.

Erros comuns em regex

Esquecer de escapar caracteres especiais é o erro mais comum. Caracteres como . + * ? ( ) [ ] ^ $ | e chavetas têm significado especial em regex e devem ser escapados com uma barra invertida quando se quer correspondê-los literalmente. Por exemplo, para corresponder a um ponto é preciso barra invertida seguida de ponto em vez de apenas um ponto.

Escrever padrões demasiado gananciosos é outro problema frequente. O quantificador .* corresponde ao máximo de texto possível, o que pode capturar muito mais do que o pretendido. Use o quantificador lazy .*? para corresponder ao mínimo possível, ou use padrões mais específicos como [^>]* em vez de .* ao analisar texto estruturado.

Perguntas frequentes

Os padrões regex são iguais em todas as linguagens?

A sintaxe básica é similar, mas existem diferenças. JavaScript, Python, Java e .NET têm cada um características e sintaxe ligeiramente diferentes para construções avançadas como asserções lookbehind, grupos nomeados e suporte a Unicode. Esta ferramenta usa regex JavaScript, que é o padrão para o desenvolvimento web.

Como posso aprender expressões regulares?

Comece com padrões simples e vá adicionando complexidade gradualmente. Aprenda primeiro os metacaracteres básicos (. * + ? ^ $), as classes de caracteres ([a-z], \d, \w) e os quantificadores. Em seguida, avance para agrupamento, alternância e lookaheads. Pratique com tarefas do mundo real como validar e-mails, analisar ficheiros de log ou extrair dados de HTML.