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

Capítulo 21

Tempo estimado de leitura: 7 minutos

+ Exercício
Audio Icon

Ouça em áudio

0:00 / 0:00

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:

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

  • 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.

Metacaracteres como \d representam dígitos e \w representam caracteres alfanuméricos na sintaxe de expressões regulares em Python, tornando a opção 3 a correta. O módulo re de Python permite operações de substituição com re.sub(), e portanto, opções 1 e 2 são falsas.

Próximo capitúlo

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

Arrow Right Icon
Capa do Ebook gratuito Desvendando Dados com Python: Uma Jornada Analítica
17%

Desvendando Dados com Python: Uma Jornada Analítica

5

(1)

123 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.