Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando Expressões Regulares em Python: re.match(), re.search(), re.findall() — Exemplos Práticos

O que é uma Expressão Regular em Python?

Uma expressão regular (regex) é uma descrição textual compacta que diz ao Python como localizar padrões dentro de uma string. Regexes são indispensáveis para extração de dados, validação e transformação em bases de código, logs, arquivos de configuração e projetos de web scraping.

Em Python, o módulo re vem com o interpretador e expõe uma API rica para compilar padrões, buscar e substituir texto. Seja filtrando entrada de usuário, parseando logs ou raspando conteúdo de sites, um sólido domínio dos fundamentos de regex economiza tempo e reduz bugs.

Conceitos Básicos de Regex

Tabela de Identificadores Comuns

IdentificadorDescriçãoWhitespaceEscape Especial
\dQualquer dígito (0-9)\n., +, *, ?, [], $, ^, (, ), {}, |, \
\DNão-dígito\s
\sEspaço, tab, newline, etc.\t
\SNão-espaço\e
\wAlfanumérico mais underscore\r
\WNão-alfanumérico (exceto underscore)\f
.Qualquer caractere exceto newline—
\bFronteira de palavra—
\.Ponto literal—
\{x}Exatamente x ocorrências—

Começando com re

import re

O módulo re faz parte da biblioteca padrão do Python e não requer dependências externas. Casos de uso comuns incluem:

Exemplo 1: \w+ e ^

Usando estes, podemos capturar a primeira palavra de uma string:

import re
sample = "guru99, education is fun"
result = re.findall(r"^\w+", sample)
print(result) # Output: ['guru99']

Removendo o + retornaria apenas o primeiro caractere: ["g"].

Exemplo 2: Dividindo em Whitespace com \s

A função re.split() pode dividir uma string onde um padrão corresponde. Usando \s divide em qualquer caractere de whitespace.

import re
text = "we are splitting the words"
print(re.split(r"\s", text)) # ['we', 'are', 'splitting', 'the', 'words']

Se a barra invertida for omitida, s é tratado como literal, resultando em divisões em cada caractere s.

Visão Geral dos Métodos de Regex

Usando re.match()

import re
text = "guru99 is a great platform"
match = re.match(r"^\w+", text)
print(match.group() if match else "No match") # Output: guru99

Usando re.search()

import re
text = "Software Testing is fun"
for pattern in ["Software testing", "guru99"]:
    found = re.search(pattern, text, re.IGNORECASE)
    print(f"Looking for '{pattern}' in '{text}' - {'found a match!' if found else 'no match'}")

Usando re.findall()

import re
emails = "guru99@google.com, careerguru99@hotmail.com, users@yahoomail.com"
found = re.findall(r"[\w\.-]+@[\w\.-]+", emails)
for e in found:
    print(e)

Flags de Regex

Flags modificam comportamento do padrão. Flags comuns incluem:

FlagDescrição
re.M (re.MULTILINE)Faz ^ e $ corresponderem ao início e fim de cada linha.
re.I (re.IGNORECASE)Ignora distinção de maiúsculas/minúsculas.
re.S (re.DOTALL)Faz ponto corresponder newlines.
re.U (re.UNICODE)Aplica classes de caracteres Unicode-aware.
re.L (re.LOCALE)Faz classes dependerem do locale atual.
re.X (re.VERBOSE)Permite whitespace e comentários no padrão.

Exemplo Multilinha

import re
text = """guru99
careerguru99
selenium"""
print(re.findall(r"^\w", text)) # ['g']
print(re.findall(r"^\w", text, re.MULTILINE)) # ['g', 'c', 's']

Compatibilidade com Python 2

Todos os exemplos acima são escritos para Python 3. Se você precisar executá-los sob Python 2, substitua declarações print() pela sintaxe Python 2 e garanta que o módulo re seja importado da mesma forma.

Conclusão

Dominar regex em Python oferece um toolkit poderoso para processamento de texto:

python

  1. Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
  2. Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
  3. Domine Strings format() em Python com Exemplos Claros
  4. Python len(): Guia Prático para Medir Comprimento de Objetos
  5. Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas
  6. Função round() em Python Explicada com Exemplos Práticos
  7. Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas
  8. Python timeit(): Medindo Tempo de Execução com Exemplos Práticos
  9. Counter do Python em collections: Contagem Eficiente, Atualização e Operações Aritméticas
  10. Python list.count(): Guia Especializado com Exemplos Práticos