Módulo 14 - Datas e expressões regulares

O que é uma expressão regular

10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Entender que uma regex descreve um padrão, não um texto fixo.
  • Conhecer o módulo re e por que usar raw strings nos padrões.
  • Identificar os três usos principais: validar, buscar e extrair.
  • Reconhecer quando uma regex ajuda e quando é exagero.

Descrever a forma, não o texto

Imagine que você precisa encontrar todos os telefones em um texto. Um telefone não é uma palavra fixa como gato; ele tem uma forma: alguns números, talvez um parêntese, um hífen no meio. Procurar por texto exato não resolve, porque cada telefone é diferente. O que se repete é o formato. Expressão regular é justamente uma maneira de descrever esse formato. Em vez de dizer procure a palavra tal, você diz procure dois dígitos, um espaço e mais nove dígitos. A regex é a descrição do padrão.

Essa ideia muda o jeito de pensar. Com texto comum, você compara caractere por caractere. Com regex, você descreve uma classe de textos de uma vez: todos os que têm aquele formato. Um único padrão pode casar com milhares de telefones diferentes, ou com nenhum, se o formato não aparecer. É uma linguagem pequena e poderosa, presente em quase todas as linguagens de programação e em muitos editores de texto. Aprender o básico dela rende para a vida inteira de quem programa.

Busca por texto fixo

  • Acha só a palavra exata que você digitou
  • Não entende de formato, só de letras iguais
  • Um CEP diferente já não é encontrado
  • Boa para procurar um nome conhecido

Busca por padrão (regex)

  • Acha qualquer texto que tenha a forma descrita
  • Entende dígitos, letras, espaços e repetições
  • Casa com todos os CEPs, sejam quais forem
  • Boa para validar, buscar e extrair formatos

O módulo re e as raw strings

No Python, as expressões regulares vivem no módulo re, que faz parte da biblioteca padrão. Você o traz com import re e passa a ter funções para procurar, encontrar todos os casos e substituir. O padrão em si é sempre um texto: você escreve a descrição do que procura entre aspas. O detalhe importante é que regex usa muito a barra invertida, por exemplo em \d, que significa um dígito. Como a barra invertida também tem significado especial nas strings normais do Python, o costume é escrever os padrões como raw string.

import re

# Padrao como raw string (o 'r' antes das aspas):
padrao = r"\d+"          # um ou mais digitos

texto = "Pedido 4521 aprovado"
resultado = re.search(padrao, texto)

print(resultado)          # <re.Match object; span=(7, 11), match='4521'>
print(resultado.group())  # 4521

# Sem o 'r' voce teria que dobrar a barra: "\\d+"
# A raw string deixa o padrao igual ao que se le nos manuais.

import re traz as funções de regex; o r antes das aspas cria uma raw string, ideal para padrões.

Onde a regex ajuda (e onde é exagero)

As expressões regulares brilham em três tarefas. A primeira é validar: conferir se um texto tem o formato esperado, como saber se o que o usuário digitou parece um e-mail ou um CEP. A segunda é buscar: encontrar dentro de um texto grande o primeiro trecho que casa com o padrão. A terceira é extrair: pegar todos os pedaços que seguem uma forma, como todas as datas de um relatório ou todos os preços de uma página. Nas próximas aulas você pratica exatamente essas três coisas.

import re

# 1) VALIDAR: o texto parece um CEP (5 digitos, hifen, 3 digitos)?
cep = "01310-100"
print(bool(re.fullmatch(r"\d{5}-\d{3}", cep)))  # True

# 2) BUSCAR: existe algum numero no texto?
print(bool(re.search(r"\d+", "total: 42 itens")))  # True

# 3) EXTRAIR: todos os numeros do texto
print(re.findall(r"\d+", "3 gatos, 12 aves, 7 peixes"))
# ['3', '12', '7']

Os três usos centrais das regex: validar um formato, buscar uma ocorrência e extrair todas.

Uma ressalva honesta: regex não é a ferramenta para tudo. Se você só quer saber se uma palavra aparece em um texto, o operador in resolve, e é mais legível: "erro" in mensagem. Se o dado já vem estruturado, como um JSON, use o leitor de JSON, não regex. As expressões regulares valem a pena quando o texto é livre e o que você procura tem uma forma, mas não uma posição fixa. Use-as com critério: uma regex simples e clara é ótima, mas uma regex gigante e ilegível costuma ser sinal de que havia um caminho melhor.

Teste rápido

Por que se escreve o padrão como raw string, com r antes das aspas, por exemplo r"\d+"?

Perguntas frequentes

Preciso instalar algo para usar regex no Python?
Não. O módulo re faz parte da biblioteca padrão, então já vem com o Python. Basta escrever import re no começo do programa e o Playground do curso roda os exemplos sem instalar nada.
O que significa o r antes das aspas em r"\d+"?
Ele cria uma raw string, em que a barra invertida é tratada de forma literal. Como regex usa muitas barras (\d, \w, \s), a raw string deixa o padrão idêntico ao dos manuais e evita ter que dobrar cada barra. É o jeito recomendado de escrever qualquer padrão.
Regex é a mesma coisa em outras linguagens?
A ideia e a maioria dos símbolos são compartilhados entre linguagens como Python, JavaScript, Java e muitas outras, além de editores de texto. Há pequenas diferenças de sintaxe, mas o que você aprende aqui, como \d para dígito, vale na prática em quase todo lugar.
Quando é melhor não usar regex?
Quando existe um jeito mais simples. Para saber se uma palavra aparece, use o operador in. Para dados já estruturados, como JSON ou CSV, use o leitor próprio. Regex vale quando o texto é livre e o que você busca tem forma, mas não posição fixa.
Regex diferencia maiúsculas de minúsculas?
Por padrão, sim: A e a são tratados como diferentes. Você pode ignorar essa diferença passando a opção re.IGNORECASE nas funções do módulo re, o que é útil ao validar texto que o usuário pode digitar de qualquer jeito.
Uma regex pode casar com muitos textos diferentes?
Sim, e é justamente a vantagem. Um único padrão como \d{5}-\d{3} casa com qualquer CEP no formato certo, sejam milhares deles. Você descreve a forma uma vez e ela reconhece todos os textos que se encaixam, ou nenhum, se o formato não aparecer.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.