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)