Expressões Regulares em Python

PythonBeginner
Pratique Agora

Introdução

Expressões regulares, também conhecidas como "regex", são uma ferramenta poderosa para trabalhar com strings. Elas podem ser usadas para pesquisar, editar e manipular texto de diversas maneiras. Neste laboratório, você aprenderá os fundamentos de como trabalhar com expressões regulares em Python.

Conquistas

  • Expressões Regulares (Regular Expressions)

Importar o Módulo Re

Para usar expressões regulares em Python, você precisará importar o módulo re.

Abra uma nova sessão do interpretador Python e digite o seguinte código:

python3

Adicione a seguinte linha no topo do seu script Python:

import re

Compilar uma Expressão Regular

Antes de usar uma expressão regular para pesquisar um padrão em uma string, você deve primeiro compilá-la. Para compilar uma expressão regular, você pode usar a função re.compile().

Por exemplo, o seguinte código compilará uma expressão regular que pesquisa a letra "a" em uma string:

regex = re.compile(r"a")

Observe que o r antes da string indica que ela é uma string "raw" (crua), o que significa que as barras invertidas são tratadas como caracteres literais, em vez de caracteres de escape. Isso é geralmente recomendado ao trabalhar com expressões regulares para evitar confusão.

Usar o Método Search()

Agora que você compilou uma expressão regular, pode usar o método search() para pesquisar um padrão em uma string.

Por exemplo, o seguinte código pesquisará a letra "a" na string "cat":

match = regex.search("cat")
print(match) ## Output: <re.Match object; span=(1, 2), match='a'>

O método search() retornará um objeto Match se o padrão for encontrado, ou None se não for encontrado.

Usar o Método Match()

O método match() é semelhante ao método search(), mas ele só corresponde a padrões no início de uma string.

Por exemplo, o seguinte código corresponderá ao padrão "cat" no início da string "catdog":

regex = re.compile(r"cat")
match = regex.match("catdog")
print(match) ## Output: <re.Match object; span=(0, 3), match='cat'>

Usar o Método Findall()

O método findall() retorna uma lista de todas as instâncias de um padrão em uma string.

Por exemplo, o seguinte código encontrará todas as letras "a" na string "cat":

regex = re.compile(r"a")
matches = regex.findall("cat")
print(matches)  ## Output: ["a"]

Existem muitos caracteres especiais que você pode usar em expressões regulares para corresponder a padrões mais complexos. Aqui estão alguns exemplos:

  • . (ponto) corresponde a qualquer caractere único
  • * corresponde a zero ou mais do caractere precedente
  • + corresponde a um ou mais do caractere precedente
  • ? corresponde a zero ou um do caractere precedente
  • [caracteres] corresponde a qualquer um dos caracteres dentro dos colchetes

Usar Grupos

Você pode usar grupos em suas expressões regulares para extrair partes específicas de um padrão. Grupos são criados envolvendo uma parte do padrão em parênteses.

Por exemplo, a seguinte expressão regular corresponderá a qualquer palavra que comece com "cat" e termine com "dog":

regex = re.compile(r"cat(.*)dog")

Você pode então usar o método group() do objeto Match para extrair a parte do padrão que foi correspondida pelo grupo. Por exemplo:

match = regex.search("catdog")
print(match.group(1))  ## Output: "" (empty string)

match = regex.search("catfooddog")
print(match.group(1))  ## Output: "food"

Usar o Método Sub()

O método sub() permite que você substitua todas as instâncias de um padrão em uma string por uma string diferente.

Por exemplo, o seguinte código substituirá todas as letras "a" na string "cat" pela letra "b":

regex = re.compile(r"a")
new_string = regex.sub("b", "cat")
print(new_string)  ## Output: "cbt"

Usar o Método Split()

O método split() permite que você divida uma string por um padrão.

Por exemplo, o seguinte código dividirá a string "cat dog" pelo caractere espaço:

regex = re.compile(r" ")
words = regex.split("cat dog")
print(words)  ## Output: ["cat", "dog"]

Regex101

Regex101 é uma ferramenta online para testar expressões regulares que permite testar suas expressões regulares em relação a uma string de sua escolha. É um recurso útil para depurar e desenvolver expressões regulares, pois fornece informações detalhadas sobre as correspondências e erros em sua regex.

Para usar o Regex101, você pode inserir uma expressão regular no campo "Regex" e uma string para testá-la no campo "Test String". À medida que você digita, a ferramenta destacará quaisquer correspondências na string e também exibirá quaisquer erros ou avisos na seção "Result".

Além de testar expressões regulares, o Regex101 também inclui vários recursos úteis, como a capacidade de salvar e compartilhar suas expressões regulares, uma biblioteca de padrões comuns de expressões regulares e opções para personalizar a maneira como a ferramenta realiza as correspondências.

No geral, o Regex101 é uma ferramenta valiosa para qualquer pessoa que trabalhe com expressões regulares em Python ou qualquer outra linguagem de programação.

Resumo

Neste laboratório, você aprendeu como usar expressões regulares em Python para pesquisar, corresponder e manipular strings. Você aprendeu como compilar expressões regulares, como usar vários métodos como search(), match(), findall() e sub(), e como usar caracteres especiais e grupos para corresponder a padrões mais complexos.

Espero que isso ajude! Avise-me se tiver alguma dúvida.