DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Edited on

Desvendando a Sintaxe das Expressões Regulares em Python: Um Guia Completo

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 
Enter fullscreen mode Exit fullscreen mode

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.") 
Enter fullscreen mode Exit fullscreen mode

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() 
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

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'] 
Enter fullscreen mode Exit fullscreen mode

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'] 
Enter fullscreen mode Exit fullscreen mode
  • ^ (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'] 
Enter fullscreen mode Exit fullscreen mode
  • $ (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'] 
Enter fullscreen mode Exit fullscreen mode
  • * (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'] 
Enter fullscreen mode Exit fullscreen mode
  • + (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'] 
Enter fullscreen mode Exit fullscreen mode
  • ? (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'] 
Enter fullscreen mode Exit fullscreen mode

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'] 
Enter fullscreen mode Exit fullscreen mode

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)