Python RegEx

O regex do Python será discutido usando exemplos. Como um meio de atingir os objetivos educacionais.

Em Python regex , falamos sobre Expressões Regulares, ou RegEx. RegEx é uma sequência de caracteres que forma um padrão de pesquisa.

Usando o RegEx, você pode verificar se uma string contém o padrão de pesquisa que você especificou.

Python Regex



Módulo RegEx do Python

A linguagem de programação Python inclui um pacote chamado re que lida com expressões regulares.

Importar novamente:

import re

Usando Python Regex

Após a importação do módulo re , você pode começar a escrever expressões regulares com Python regex:

Para descobrir se a string começa com “Elon” e termina com “Musk”, pesquise a string da seguinte forma:

Example

1
2
3
4
5
6
7
import re
sentence = "Elon Musk is new owner of twitter, His full name is Elon Reeve Musk"
mrx = re.search("^Elon.*Musk%24", sentence)
if mrx:
print("True – Above sentence has Elon in start and musk in end.")
else:
print("Sorry no match found.")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Funções RegEx do Python

No módulo Python regex re , podemos procurar correspondências entre duas strings usando as seguintes funções :

Função Visão geral
encontrar tudo Fornece uma lista de todas as correspondências.
procurar Corresponde a qualquer lugar na string e retorna um objeto Match.
dividir Divide a string em cada correspondência e retorna uma lista.
sub Substituição de string para uma ou mais correspondências.

Metacaracteres com Python RegEx

Caracteres com metacaracteres têm um significado especial:

Personagem Visão geral Exemplo Tente
[] Os caracteres em um conjunto – Usando – dentro de colchetes, você pode especificar um intervalo de caracteres.
[ae] corresponde a [abcde]
[1-4] = [1234]
"[PM]" Executar
\ Detecta uma sequência especial (ou escapa de um caractere especial). “\d” Executar
. Caracteres diferentes de novas linhas "el..on" Executar
^ Começa com “^reve” Executar
$ Termina com “Almíscar$” Executar
* Uma ocorrência de zero ou mais “mrx*” Executar
+ Uma ou várias ocorrências “mrx+” Executar
{} Quantidade de ocorrências conforme especificado “sr{2}” Executar
| é ou/ou “cai | sobe” Executar
() Agrupar e capturar

Sequências Especiais

Aqui estão algumas sequências regex do Python , precedidas por caracteres da lista abaixo, que possuem significados especiais:

Personagem Visão geral Exemplo Tente
\A

Corresponde às strings em que os caracteres especificados aparecem no início.

“\AMr” Executar
\b

Esta função corresponde a palavras que contêm os caracteres especificados no início ou no final.
Ele garante que a string seja tratada como uma “string bruta” adicionando o “r” no início.

e”\blon”
m”usk\b”
Executar
Executar
\B

Os caracteres especificados devem aparecer na correspondência, mas não no início (ou no final) O final de uma palavra.
Um “r” no início indica que a string deve ser tratada como “raw”.

e”\Blon”
m”musk\B”
Executar
Executar
\d

Esta função encontra correspondências em strings com dígitos (de 0 a 9).

“\d” Executar
\D

Corresponde a strings que não contêm dígitos.

“\D” Executar
\s

Identifica uma string contendo espaço em branco como uma correspondência.

“\s” Executar
\S

Corresponde a strings sem caracteres de espaço em branco.

“\S” Executar
\c

 Ele encontra correspondências onde a string contém qualquer um dos caracteres de palavra (a a Z, 0-9 e sublinhado _).

"\c" Executar
\C

Esta função retorna uma correspondência quando não há caracteres de palavras na string.

"\C" Executar
\Z

Uma correspondência será retornada se a string terminar com os caracteres especificados.

“Elon\Z” Executar

Conjuntos

Python regex usa o termo 'conjunto' para descrever uma série de caracteres entre colchetes [] que têm um significado especial quando se trata de seu uso em Python regex:

Definir Visão geral Tente
[arn]

A função retorna uma correspondência quando um dos caracteres especificados (a, r ou n) aparece na string

Executar
[um] Identifica correspondências entre a e n para qualquer caractere minúsculo. Executar
[^arn] Corresponde a qualquer caractere EXCETO a , r e n Executar
[0123] Qualquer dígito ( 0 , 1 , 2 ou 3 ) no intervalo especificado será retornado como uma correspondência Executar
[0-9] Corresponde a qualquer dígito entre 0 e 9 Executar
[0-5][0-9] Corresponde a qualquer número de dois dígitos entre 00 e 59 Executar
[a-zA-Z] A função retorna a correspondência para qualquer caractere em ordem alfabética entre a e z , em letras minúsculas ou maiúsculas. Executar
[+] Em conjuntos, +, *, ., |, (), $,{} não tem nenhum significado especial, enquanto [+] significa: retorna uma correspondência para qualquer caractere + na string. Executar

Função findall () do Python

A função regex findall() do Python fornece uma lista que contém todas as correspondências.

Todas as correspondências serão impressas em uma lista:

Example

1
2
3
4
5
import re
#Get a list of all occurrences of "on":
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
mrx = re.findall("on", sentence)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

As correspondências são listadas em ordem de descoberta.

No Python regex , uma lista vazia é retornada se nenhuma correspondência for encontrada:

Se nenhuma correspondência for encontrada, retorne uma lista vazia:

Example

1
2
3
4
5
6
7
8
9
import re
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
#Check the string for "Billgates":
mrx = re.findall("Billgates", sentence)
print(mrx)
if (mrx):
print("Yes, there is a match%21")
else:
print("Sorry, No match")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

função search () em Python Regex

Search() pesquisa a string em busca de uma correspondência e retorna um objeto de correspondência se for encontrado.

Ele só retornará a primeira correspondência se houver mais de uma:

Se a string contiver um espaço em branco, procure-o da seguinte maneira:

Example

1
2
3
4
import re
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
mrx = re.search("\s", sentence)
print("Position of the first white-space character is:", mrx.start())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O valor None é retornado se nenhuma correspondência for encontrada:

Nenhum resultado foi encontrado quando você pesquisou:

Example

1
2
3
4
import re
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
mrx = re.search("spaceX", sentence)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Função split() do Python

Quando split() é chamado, ele retorna uma lista que contém as strings divididas:

Cada caractere de espaço em branco é dividido da seguinte forma:

Example

1
2
3
4
5
import re
#Every whitespace character in the string:
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
mrx = re.split("\s", sentence)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ao especificar maxsplit , você pode controlar quantas divisões ocorrem:

Separe a string na primeira posição:

Example

1
2
3
4
5
6
7
import re
#At the first character of white space, separate the string as follows:
sentence = "Elon Musk is the new owner of Twitter, His full name is Elon Reeve Musk"
mrx = re.split("\s", sentence, 1)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Função Python sub()

Quando se trata de Python regex , a função sub() substitui as correspondências pelo texto de sua escolha:

Todos os espaços em branco ou em branco devem ser preenchidos com o caractere – :

Example

1
2
3
4
5
6
7
import re
#Remove all whitespace characters and replace them with "-":
sentence = "Currently, Elon Musk is the owner of Twitter. His full name is Elon Reeve Musk"
mrx = re.sub("\s", "-", sentence)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O parâmetro de contagem permite especificar o número de substituições:

As 4 primeiras ocorrências devem ser substituídas:

Example

1
2
3
4
5
6
7
import re
#White or blank spaces should be replaced with symbol – in the first Four positions:
sentence = "Elon Musk currently owns Twitter and he is in charge of its operation. The full name of Elon Musk is Elon Reeve Musk"
mrx = re.sub("\s", "-", sentence, 4)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Objeto correspondente

No Python regex , o Match Object é um objeto que fornece informações sobre a pesquisa e o resultado que foi realizado.

A menos que haja uma correspondência, None será retornado em vez de um Match Object.

Para encontrar um Match Object, faça a seguinte pesquisa:

Example

1
2
3
4
5
6
7
import re
#A Match object is returned by the search() function:
sentence = "Elon Musk currently owns Twitter and he is in charge of its operation. The full name of Elon Musk is Elon Reeve Musk"
mrx = re.search("on", sentence)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Existem propriedades e métodos no objeto Match que são usados ​​para recuperar dados sobre a pesquisa e os resultados.

  • Uma tupla contendo as posições inicial e final da correspondência é retornada por .span() .
  • A string passada para a função é retornada por .string
  • Uma correspondência entre os grupos de uma string é retornada por .group()

Identifique a primeira ocorrência de uma correspondência (posições iniciais e finais).

Example

1
2
3
4
5
6
7
import re
#Find a capital "R" in the beginning of a word and print its position:
sentence = "Elon Musk currently owns Twitter and he is in charge of its operation. The full name of Elon Musk is Elon Reeve Musk"
mrx = re.search(r"\bR\w+", sentence)
print(mrx.span())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A string passada para a função será exibida da seguinte forma:

Example

1
2
3
4
5
6
7
import re
#Search strings are returned by the string property:
sentence = "Elon Musk currently owns Twitter and he is in charge of its operation. The full name of Elon Musk is Elon Reeve Musk"
mrx = re.search(r"\bR\w+", sentence)
print(mrx.string)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Você poderá ver a parte da string onde houve uma correspondência.

Example

1
2
3
4
5
6
7
import re
#Print the word that begins with an upper case "R" character:
sentence = "Elon Musk currently owns Twitter and he is in charge of its operation. The full name of Elon Musk is Elon Reeve Musk"
mrx = re.search(r"\bR\w+", sentence)
print(mrx.group())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A menos que haja uma correspondência, None será retornado em vez de Match Object.


Usos do Python RegEx

Aqui estão alguns casos de uso comuns para Python regex:

  1. Regex pode ser usado para procurar padrões específicos dentro de strings. Por exemplo, você pode encontrar todas as ocorrências de uma determinada palavra, extrair endereços de e-mail ou URLs, validar números de telefone, etc.
  2. Regex permite extrair partes específicas de texto de uma string maior. Isso pode ser útil para analisar dados, extrair informações de logs ou raspar páginas da web.
  3. Regex permite que você encontre e substitua padrões específicos dentro de uma string. Você pode substituir certas palavras, remover caracteres indesejados ou realizar transformações de texto complexas.
  4. O Regex pode ser usado para validar a entrada do usuário, verificando se ele corresponde a um padrão específico. Por exemplo, você pode verificar se uma entrada segue um determinado formato, como um endereço de e-mail válido, uma senha forte ou um formato de data correto.
  5. Regex pode ajudar a limpar e normalizar dados removendo caracteres indesejados, formatando inconsistências ou corrigindo erros comuns em dados textuais.
  6. Regex permite dividir o texto em tokens com base em padrões específicos. Isso pode ser útil para tarefas de processamento de linguagem natural, como classificação de texto, análise de sentimento ou recuperação de informações.
  7. Regex é frequentemente usado em compiladores e interpretadores de linguagem de programação para tokenização e análise de código-fonte, identificando palavras-chave, operadores e outras construções de linguagem.
  8. Em estruturas de desenvolvimento da Web, o regex é comumente usado para definir padrões de URL e rotear solicitações de entrada para manipuladores ou controladores apropriados.
Sua reação é parte essencial de nossa jornada rumo à excelência e agradecemos sua contribuição.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone