Neste artigo
O que é uma expressão regular?
Uma expressão regular (regex ou regexp) é uma sequência de caracteres que define um padrão de busca. São usadas para pesquisar, combinar, extrair, substituir e validar texto. Padrões regex têm suporte nativo em praticamente todas as linguagens de programação e são ferramentas essenciais no arsenal de qualquer desenvolvedor.
Regex pode variar de padrões simples como \d+ (um ou mais dígitos) a padrões complexos de múltiplas linhas com lookaheads, retrorreferências e grupos nomeados. Embora poderosas, expressões regex complexas podem ser difíceis de ler e manter — o testador de regex ajuda a construir e verificar padrões de forma interativa.
Como funciona nosso testador de regex
O testador de regex oferece correspondência em tempo real com destaque visual enquanto você digita.
- Correspondência ao vivo — destaca todas as correspondências na sua string de teste à medida que você digita o padrão
- Suporte a flags — ative ou desative as flags global, insensível a maiúsculas, multilinha e dotAll
- Exibição de grupos capturados — mostra grupos capturados e capturas nomeadas para padrões complexos
Experimente gratuitamente — sem cadastro
Testar uma Expressão Regular →Quando usar o testador de regex
O testador de regex é útil sempre que você precisa desenvolver ou depurar um padrão antes de incorporá-lo ao código.
- Validação de formulários — desenvolva e teste padrões para validação de e-mail, telefone, CEP ou entradas personalizadas
- Análise de logs — construa regex para extrair campos de linhas de log antes de processar com grep ou awk
- Extração de dados — teste padrões para scraping ou extração de dados estruturados de texto ou HTML
Perguntas frequentes
Qual é a diferença entre quantificadores greedy e lazy?
Quantificadores greedy (*, +, ?) correspondem ao máximo possível. Quantificadores lazy (*?, +?, ??) correspondem ao mínimo possível. Por exemplo, na string <a>texto</a>, o padrão <.*> corresponde à string inteira (greedy), enquanto <.*?> corresponde apenas a <a> (lazy). Quantificadores lazy são essenciais para analisar HTML ou estruturas aninhadas.
Como faço para corresponder a um ponto literal ou outro caractere especial em regex?
Escape o caractere com uma barra invertida: \. corresponde a um ponto literal, \* corresponde a um asterisco literal. Os caracteres especiais que precisam de escape são: . * + ? ^ $ { } [ ] | ( ) \. Se precisar corresponder a qualquer um desses literalmente, sempre os prefixe com \.
Por que meu regex funciona de forma diferente em JavaScript versus Python?
Linguagens diferentes implementam variantes de regex ligeiramente diferentes. As principais diferenças incluem: Python usa (?P<nome>) para grupos nomeados enquanto JavaScript usa (?<nome>); o suporte a lookbehind varia; alguns recursos como \K (keep) existem em PCRE mas não em JavaScript. Sempre teste seu regex no contexto da linguagem alvo.