4.17. Fundamentos de Programação com Python: Introdução a Expressões Regulares

Na jornada analítica, uma habilidade essencial é a capacidade de manipular e analisar texto. Os dados muitas vezes contêm sequências de caracteres que precisam ser pesquisadas, validadas ou transformadas, e é aqui que as expressões regulares se tornam uma ferramenta poderosa. Expressões regulares, ou regex, são uma sequência de caracteres que formam um padrão de pesquisa. Elas são usadas para verificar se uma cadeia contém o padrão especificado, para encontrar correspondências dentro de uma cadeia e para substituir partes de uma cadeia.

Por que aprender expressões regulares?

Em Python, a manipulação de strings é uma tarefa comum, especialmente quando se lida com dados textuais em análises de dados, ciência de dados e automação de tarefas. Expressões regulares permitem que você identifique padrões complexos em strings que seriam difíceis ou impossíveis de capturar com métodos de string padrão. Por exemplo, validar endereços de e-mail, extrair datas de um texto ou limpar dados de um arquivo de log são tarefas que podem ser realizadas de forma eficiente com regex.

Como as expressões regulares funcionam?

Expressões regulares são construídas usando uma combinação de metacaracteres e texto literal. Metacaracteres são símbolos que têm significados especiais dentro de uma expressão regular. Eles podem representar tipos de caracteres, como dígitos ou letras, ou especificar quantidades, como 'um ou mais' ou 'zero ou um'. Alguns dos metacaracteres mais comuns incluem:

  • . - Corresponde a qualquer caractere, exceto uma nova linha
  • \d - Corresponde a qualquer dígito numérico
  • \w - Corresponde a qualquer caractere alfanumérico, incluindo o sublinhado
  • \s - Corresponde a qualquer espaço em branco, como espaço, tabulação ou nova linha
  • * - Corresponde a zero ou mais ocorrências do caractere anterior
  • + - Corresponde a uma ou mais ocorrências do caractere anterior
  • ? - Corresponde a zero ou uma ocorrência do caractere anterior
  • {m,n} - Corresponde a pelo menos m e no máximo n ocorrências do caractere anterior
  • ^ - Corresponde ao início de uma linha ou string
  • $ - Corresponde ao final de uma linha ou string
  • [abc] - Corresponde a qualquer um dos caracteres entre colchetes
  • (a|b) - Corresponde a a ou b

Combinando esses metacaracteres com caracteres literais, você pode começar a construir padrões que correspondam a estruturas complexas dentro de uma string.

Usando expressões regulares em Python

Python tem um módulo integrado chamado re que fornece suporte para trabalhar com expressões regulares. Aqui estão algumas das funções mais utilizadas do módulo re:

  • re.match() - Verifica se o RE corresponde ao início da string.
  • re.search() - Varre toda a string, procurando qualquer local onde o RE corresponda.
  • re.findall() - Encontra todas as substrings onde o RE corresponde e as retorna como uma lista.
  • re.finditer() - Encontra todas as substrings onde o RE corresponde e as retorna como um iterador de objetos de correspondência.
  • re.sub() - Substitui as correspondências do RE na string por outro texto.

Exemplos práticos de expressões regulares

Vamos ver alguns exemplos práticos de como expressões regulares podem ser usadas em Python:

import re

# Validar um endereço de e-mail
email_pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
email = "exemplo@dominio.com"
if re.match(email_pattern, email):
    print("Endereço de e-mail válido!")
else:
    print("Endereço de e-mail inválido.")

# Extrair datas de um texto
date_pattern = r"\b\d{2}/\d{2}/\d{4}\b"
text = "O evento ocorrerá em 15/10/2023, não esqueça!"
dates = re.findall(date_pattern, text)
print("Datas encontradas:", dates)

# Substituir números de telefone por um placeholder
phone_pattern = r"\(?(\d{3})\)?[\s.-](\d{3})[\s.-](\d{4})"
replacement = "[TELEFONE]"
text = "Meus números são (123) 456-7890 e 123.456.7890."
updated_text = re.sub(phone_pattern, replacement, text)
print("Texto atualizado:", updated_text)

Esses exemplos ilustram como as expressões regulares podem ser usadas para realizar tarefas comuns de manipulação de texto. Cada padrão de regex é projetado para corresponder a estruturas específicas, e a prática é fundamental para aprender a escrever expressões regulares eficazes.

Conclusão

Expressões regulares são uma ferramenta indispensável na caixa de ferramentas de qualquer programador, especialmente aqueles que trabalham com dados e análise de texto. Elas podem parecer intimidantes no início, mas com prática e compreensão dos metacaracteres, você pode começar a desvendar dados complexos com facilidade. O domínio das expressões regulares em Python abrirá novas possibilidades para a manipulação de dados e automação de tarefas, tornando-as uma adição valiosa ao seu conjunto de habilidades analíticas.

Ao se aventurar mais profundamente no mundo das expressões regulares, você descobrirá que elas são mais do que apenas uma ferramenta de programação; são uma linguagem própria que permite comunicação precisa e eficiente com o texto. Com esta introdução aos fundamentos de expressões regulares em Python, você está bem equipado para começar a explorar padrões mais complexos e aprimorar suas habilidades de análise de dados.

Agora responda o exercício sobre o conteúdo:

Qual das seguintes afirmações sobre expressões regulares (regex) em Python é verdadeira?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Fundamentos de Programação com Python: Conceitos de Iteradores e Geradores

Próxima página do Ebook Gratuito:

22Fundamentos de Programação com Python: Conceitos de Iteradores e Geradores

6 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto