DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Edited on

2

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.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay