Expressões regulares em Python simplificadas
Expressões regulares (regex) são ferramentas poderosas usadas para combinar e manipular strings com base em padrões. Em Python, o módulo re
fornece suporte para expressões regulares, permitindo que você execute operações complexas de strings de forma eficiente. Este artigo apresentará a você os conceitos básicos de expressões regulares e mostrará como usá-las efetivamente em Python.
Introdução ao módulo re
Para usar expressões regulares em Python, você precisa importar o módulo re
. Este módulo fornece várias funções para trabalhar com padrões regex:
re.match()
- Verifica se há correspondência somente no início da string.re.search()
- Pesquisa uma correspondência em toda a string.re.findall()
- Encontra todas as correspondências na string e as retorna como uma lista.re.sub()
- Substitui correspondências na string por uma substituição especificada.
Correspondência de padrões básicos
Expressões regulares usam caracteres especiais para definir padrões de pesquisa. Aqui estão alguns padrões básicos:
.
- Corresponde a qualquer caractere único, exceto nova linha.\d
- Corresponde a qualquer dígito (equivalente a[0-9]
).\w
- Corresponde a qualquer caractere alfanumérico (equivalente a[a-zA-Z0-9_]
).\s
- Corresponde a qualquer caractere de espaço em branco.^
- Corresponde ao início da string.$
- Corresponde ao final da string.
Exemplos
Aqui estão alguns exemplos que demonstram a correspondência básica de padrões:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Usando expressões regulares com grupos
Grupos são usados para capturar partes do texto correspondente. Eles são definidos usando parênteses. Por exemplo, para extrair partes específicas de um padrão, você pode usar grupos:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Usando caracteres especiais
Expressões regulares incluem vários caracteres especiais para correspondência de padrões mais complexos:
*
- Corresponde a 0 ou mais ocorrências do elemento anterior.+
- Corresponde a 1 ou mais ocorrências do elemento anterior.?
- Corresponde a 0 ou 1 ocorrência do elemento anterior.{n}
- Corresponde exatamente an
ocorrências do elemento anterior.|
- Corresponde ao padrão anterior ou posterior.
Exemplos
Aqui estão alguns exemplos usando caracteres especiais:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Substituindo texto por expressões regulares
A função re.sub()
é usada para substituir partes da string que correspondem a um padrão:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Conclusão
Expressões regulares são uma ferramenta poderosa para correspondência de padrões e manipulação de texto em Python. Com o módulo re
, você pode pesquisar, corresponder e substituir texto com base em padrões complexos. Ao entender a sintaxe básica e os caracteres especiais, você pode aproveitar expressões regulares para lidar com uma ampla gama de tarefas de processamento de texto de forma eficaz.