As expressões regulares são uma poderosa ferramenta de manipulação de texto em Python, permitindo buscar, extrair e substituir padrões em strings. Compreender a sintaxe das expressões regulares em Python é fundamental para aproveitar todo o potencial dessa ferramenta. Neste artigo, forneceremos um guia completo sobre a sintaxe das expressões regulares em Python, com exemplos simples que facilitarão seu entendimento e aplicação.
1 - Importando a biblioteca re
:
Antes de começarmos, vamos importar a biblioteca re
para usar as funcionalidades das expressões regulares.
import re
2 - Pesquisa de padrões em texto:
Podemos usar a função re.search()
para buscar padrões em uma string. Por exemplo, vamos verificar se uma string contém o padrão "python".
import re
texto = "Eu amo programar em Python!"
padrao = "Python"
resultado = re.search(padrao, texto)
if resultado:
print("Padrão encontrado!")
else:
print("Padrão não encontrado.")
3 - Extração de informações com grupos de captura:
Podemos usar grupos de captura para extrair informações específicas de uma string. Por exemplo, vamos extrair números de telefone de uma lista de contatos.
import re
texto = "Meus contatos: (11) 98765-4321 e (22) 12345-6789"
padrao = r"\((\d+)\) (\d+-\d+)"
resultado = re.findall(padrao, texto)
for telefone in resultado:
print("Código de Área:", telefone[0])
print("Número de Telefone:", telefone[1])
print()
4 - Substituição de padrões em texto:
Podemos substituir padrões em uma string usando a função re.sub()
. Por exemplo, vamos substituir todas as ocorrências de "gato" por "cachorro" em uma frase.
import re
frase = "Eu tenho um gato, e ele é muito fofo!"
padrao = "gato"
novo_texto = re.sub(padrao, "cachorro", frase)
print(novo_texto)
5 - Filtrando valores com base em padrões:
No contexto do Pandas, podemos usar o método str.contains()
junto com expressões regulares para filtrar valores em uma coluna. Por exemplo, vamos filtrar emails que terminam com ".com" em um DataFrame.
import pandas as pd
data = {'Email': ['john@example.com', 'jane@gmail.com', 'mark@example.net']}
df = pd.DataFrame(data)
df_filtered = df[df['Email'].str.contains(r'\.com$')]
print(df_filtered)
6 - Extração de padrões em uma coluna:
Podemos usar o método str.extract()
do Pandas para extrair padrões em uma coluna. Por exemplo, vamos extrair números de uma coluna "Texto".
import pandas as pd
data = {'Texto': ['Texto 123', 'Outro texto 456', 'Mais um texto 789']}
df = pd.DataFrame(data)
df['Numeros'] = df['Texto'].str.extract(r'(\d+)')
print(df)
7 - Substituição de padrões em uma coluna:
Para substituir padrões em uma coluna do DataFrame, podemos usar o método str.replace()
. Por exemplo, vamos substituir "gato" por "cachorro" em uma coluna "Texto".
import pandas as pd
data = {'Texto': ['O gato é fofo', 'A casa é grande', 'O cachorro é brincalhão']}
df = pd.DataFrame(data)
df['Texto'] = df['Texto'].str.replace(r'gato', 'cachorro')
print(df)
8 - Caracteres Literais:
Em Python, os caracteres literais correspondem a si mesmos na string de pesquisa. Por exemplo, a expressão regular "python" corresponderá apenas à string "python". Além dos caracteres alfanuméricos, a maioria dos caracteres especiais também é considerada literal, como "_", "-", ".", etc.
Exemplo:
import re
texto = "python é uma linguagem poderosa"
padrao = r"python"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['python']
9 - Metacaracteres:
Em Python, os metacaracteres têm significados especiais em expressões regulares. Aqui estão alguns dos metacaracteres mais comuns:
-
.
(ponto): corresponde a qualquer caractere, exceto quebras de linha.
Exemplo:
import re
texto = "cat, cut, cot"
padrao = r"c.t"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['cat', 'cut', 'cot']
-
^
(circunflexo): corresponde ao início da string ou linha.
Exemplo:
import re
texto = "hello, world! hello there"
padrao = r"^hello"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['hello']
-
$
(cifrão): corresponde ao final da string ou linha.
Exemplo:
import re
texto = "Hello, world! Goodbye, world"
padrao = r"world$"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['world']
-
*
(asterisco): corresponde a zero ou mais ocorrências do caractere ou grupo anterior.
Exemplo:
import re
texto = "gd god good"
padrao = r"go*d"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['gd', 'god', 'good']
-
+
(sinal de adição): corresponde a uma ou mais ocorrências do caractere ou grupo anterior.
Exemplo:
import re
texto = "god good"
padrao = r"go+d"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['god', 'good']
-
?
(interrogação): corresponde a zero ou uma ocorrência do caractere ou grupo anterior.
Exemplo:
import re
texto = "color colour"
padrao = r"colou?r"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['color', 'colour']
10 - Classes de Caracteres, Grupos e Alternativas:
Em Python, as classes de caracteres são definidas entre colchetes [ ]
, e os grupos são definidos entre parênteses ( )
. As alternativas são usadas para especificar opções diferentes que podem corresponder à expressão regular.
Exemplo:
import re
texto = "cat gat bat rat"
padrao = r"(c|g)at"
correspondencias = re.findall(padrao, texto)
print(correspondencias) # Saída: ['cat', 'gat']
Compreender a sintaxe das expressões regulares em Python é essencial para manipular texto de forma eficiente. Através dos exemplos simples apresentados neste artigo, você pode começar a utilizar expressões regulares para buscar, extrair e substituir padrões em suas strings. Com a prática, você poderá explorar recursos mais avançados das expressões regulares em Python e aproveitar ao máximo suas capacidades. Utilize esse conhecimento para aprimorar suas habilidades de manipulação de texto em suas aplicações Python.
Top comments (0)