Pular para o conteúdo principal
FreeOnlineTools Go
Português (Brasil)
Explicação

O que é uma expressão regular? Uma explicação completa

Por FreeOnlineTools Team · Atualizado em 2026-09-02

Resposta rápida

Uma expressão regular é um padrão que descreve um conjunto de strings. Ele usa caracteres literais (correspondem a si mesmos) e metacaracteres (*, +, ?, ., ^, $, [], (), {}, |, \) com significados especiais. Regex é usado para validação, pesquisa, extração e substituição. Use nosso Regex Tester gratuito para testar padrões em texto em seu navegador.

Introdução

Uma expressão regular (regex ou regexp) é uma sequência de caracteres que define um padrão de pesquisa. O padrão é usado por algoritmos de pesquisa de strings para localizar, combinar ou substituir texto. As expressões regulares originaram-se na teoria da linguagem formal na década de 1950 (Stephen Kleene) e foram adotadas nas ferramentas de texto Unix (grep, sed, awk) na década de 1970. Hoje, o regex está integrado em praticamente todas as linguagens de programação e editores de texto. Regex é poderoso – pode validar formatos de e-mail, extrair dados de logs e encontrar padrões complexos – mas a sintaxe é densa e notoriamente difícil de ler.

Passo a passo

  1. Entenda literais e metacaracteres

    Caracteres literais (a, b, 1, @) correspondem entre si. Metacaracteres têm significados especiais: . corresponde a qualquer caractere, * significa zero ou mais, + significa um ou mais, ? significa zero ou um, ^ corresponde ao início, $ corresponde ao fim.

  2. Aprenda classes de personagens

    Colchetes [] definem uma classe de caracteres - [aeiou] corresponde a qualquer vogal, [0-9] corresponde a qualquer dígito, [^0-9] corresponde a qualquer não dígito. Classes abreviadas: \d (dígito), \w (caractere de palavra), \s (espaço em branco) e suas negações em maiúsculas.

  3. Use quantificadores

    Os quantificadores especificam quantas vezes um padrão se repete: * (0+), + (1+), ? (0 ou 1), {n} (exatamente n), {n,} (n+), {n,m} (n a m). Ganancioso por padrão; adicionar ? para correspondência lenta (por exemplo, *?).

  4. Grupo e âncora

    Parênteses () criam grupos de captura. Alternância | corresponde a qualquer um dos lados (gato|cachorro). As âncoras ^ e $ correspondem ao início e ao fim da string. Use-os para construir padrões complexos a partir de padrões mais simples.

Exemplos

Combine um padrão semelhante ao de e-mail

Entrada: Pattern: [a-z]+@[a-z]+\.[a-z]+

Saída: Correspondências: alice@example.com, bob@test.org

Corresponder a um formato de número de telefone

Entrada: Pattern: \d{3}-\d{3}-\d{4}

Saída: Matches: 555-123-4567

Extraia pares de valores-chave

Entrada: Pattern: (\w+)=(\w+)

Saída: Matches 'key=value' with group 1 as key, group 2 as value

Problemas comuns

  • A correspondência gananciosa consome demais —.* corresponde o máximo possível. Usar .*? para correspondência preguiçosa para encontrar a correspondência mais curta.
  • Esquecer de escapar dos caracteres especiais —., *, +, ?, etc. Use \ para combiná-los literalmente (por exemplo, \. corresponde a um ponto literal).
  • Retrocesso catastrófico — padrões com quantificadores aninhados (por exemplo, (a+)+) podem levar um tempo exponencial em certas entradas, causando ataques ReDoS.
  • Correspondência excessiva —sem âncoras (^ e $), um padrão corresponde a qualquer lugar. Use ^...$ para corresponder a string inteira.

Dicas

  • Comece de forma simples e adicione complexidade de forma incremental – depurar uma regex complexa de uma só vez é muito difícil.
  • Use um testador de regex para experimentar padrões em texto de amostra — veja as correspondências destacadas em tempo real.
  • Comente expressões regulares complexas usando o modo estendido (sinalizador /x em alguns mecanismos) ou divida-as em partes nomeadas.
  • Use nosso Regex Tester para testar padrões instantaneamente em seu navegador - sem inscrição, totalmente privado.

Ferramentas relacionadas

Guias Relacionados

Referências