RegEx do Python

RegEx ou expressão regular é uma sequência de caracteres que forma um padrão de busca.

RegEx pode ser usado para verificar se uma string contém um padrão de busca especificado.

RegEx

Python oferece um módulo chamado re do pacote nativo, pode ser usado para lidar com expressões regulares.

Importar re módulo:

import re

RegEx no Python

Importar re após o módulo, podemos começar a usar expressões regulares:

Exemplo

Recupera a string para verificar se ela começa com "China" e termina com "country":

import re
txt = "China é um grande país"
x = re.search("^China.*country$", txt)

Executar Exemplo

Funções RegEx

re O módulo fornece um conjunto de funções que permitem que possamos检索 strings para correspondências:

função Descrição
findall Retorna uma lista contendo todas as correspondências
search Se houver correspondência em qualquer posição da string, retorna o objeto Match
split Retorna uma lista que divide a string em cada correspondência
sub Substitui uma ou mais correspondências com uma string

Caractere meta

O caractere meta é um caractere que tem significado especial:

Caractere Descrição Exemplo TIY
[] Um grupo de caracteres "[a-m]" Experimente
\ Sequência especial (também pode ser usada para escapar de caracteres especiais) "\d" Experimente
. Qualquer caractere (exceto o caractere de nova linha) "he..o" Experimente
^ começa com "^hello" Experimente
$ termina com "world$" Experimente
* Zero ou mais ocorrências "aix*" Experimente
+ Uma ou mais ocorrências "aix+" Experimente
{} A ocorrência especificada exatamente "aix{2}" Experimente
| qualquer um dos dois "cai|fica" Experimente
() Captura e agrupamento

Sequência especial

Sequência especial se refere a \ seguido por algum caractere da tabela a seguir, possui significado especial:

Caractere Descrição Exemplo TIY
\A Se o caractere específico estiver no início da string, retorna a correspondência "\AThe" Experimente
\b Retorna a correspondência onde o caractere específico está no início ou no final da palavra r"\bain"
r"rain\b"
Experimente
Experimente
\B Retorna a correspondência onde o caractere específico existe, mas não no início (ou no final) da palavra r"\Bain"
r"rain\B"
Experimente
Experimente
\d Retorna a correspondência onde a string contém números (números de 0 a 9) "\d" Experimente
\D Retorna a correspondência onde a string não contém números "\D" Experimente
\s Retorna a correspondência onde a string contém caracteres de espaço em branco "\s" Experimente
\S Retorna a correspondência onde a string não contém caracteres de espaço em branco "\S" Experimente
\w Retorna uma correspondência onde a string contém qualquer caractere de palavra
(Os caracteres de a a Z, os números de 0 a 9 e o caractere de sublinhado _)
"\w" Experimente
\W Retorna uma correspondência onde a string não contém nenhum caractere de palavra "\W" Experimente
\Z Se o caractere especificado estiver no final da string, retorna a correspondência "Espanha\Z" Experimente

Conjunto (Set)

O conjunto (Set) é um par de colchetes [] um conjunto de caracteres dentro, que tem significado especial:

Conjunto Descrição Experimente
[arn] Retorna uma correspondência que contém um dos caracteres especificados (a, r ou n) Experimente
[a-n] Retorna correspondências de caracteres minúsculos entre a e n Experimente
[^arn] Retorna correspondências de caracteres que não são a, r ou n Experimente
[0123] Retorna correspondências que contêm qualquer número especificado (0, 1, 2 ou 3) Experimente
[0-9] Retorna correspondências de números entre 0 e 9 Experimente
[0-5][0-9] Retorna correspondências de números entre 0 e 9 Experimente
[a-zA-Z] Retorna correspondências de caracteres entre a e z, maiúsculas ou minúsculas Experimente
[+] No conjunto, +, *, ., |, (), $, {} não têm significado especial, portanto [+] representa: Experimente

função findall()

findall() A função retorna uma lista contendo todas as correspondências.

Exemplo

Imprima a lista de todas as correspondências:

import re
str = "China é um país grande"
x = re.findall("a", str)
print(x)

Executar Exemplo

Esta lista contém os itens correspondentes na ordem encontrada.

Se não encontrar correspondências, retorna uma lista vazia:

Exemplo

Se não encontrar correspondências, retorna uma lista vazia:

import re
str = "China é um país grande"
x = re.findall("USA", str)
print(x)

Executar Exemplo

função search()

search() A função busca correspondências na string, retornando um objeto Match se houver correspondência.

Se houver várias correspondências, retorna apenas a primeira correspondência:

Exemplo

Procure o primeiro caractere de espaço em branco na string:

import re
str = "China é um país grande"
x = re.search("\s", str)
print("A primeira caractere de espaço em branco está localizado na posição:", x.start())

Executar Exemplo

Se não encontrar correspondências, o valor retornado Nenhum:

Exemplo

Realize uma busca que não retorna correspondências:

import re
str = "China é um país grande"
x = re.search("USA", str)
print(x)

Executar Exemplo

função split()

split() A função retorna uma lista, onde a string é dividida em cada correspondência:

Exemplo

Divida a string em cada caractere de espaço em branco:

import re
str = "China é um país grande"
x = re.split("\s", str)
print(x)

Executar Exemplo

Você pode especificar maxsplit parâmetro para controlar a ocorrência:

Exemplo

Divida a string apenas na primeira ocorrência:

import re
str = "China é um país grande"
x = re.split("\s", str, 1)
print(x)

Executar Exemplo

função sub()

sub() A função substitui a correspondência pela sua escolha de texto:

Exemplo

Substitua todos os caracteres de espaço em branco pelo número 9:

import re
str = "China é um país grande"
x = re.sub("\s", "9", str)
print(x)

Executar Exemplo

Você pode especificar count Parâmetros para controlar o número de substituições:

Exemplo

Substituir as duas primeiras ocorrências:

import re
str = "China é um país grande"
x = re.sub("\s", "9", str, 2)
print(x)

Executar Exemplo

Objeto Match

O objeto Match é um objeto que contém informações sobre a pesquisa e os resultados.

Notas:Se não houver correspondência, o valor retornado Nenhumem vez de objeto Match.

Exemplo

A execução retornará um objeto Match da pesquisa:

import re
str = "China é um país grande"
x = re.search("a", str)
print(x) # Isso imprimirá um objeto

Executar Exemplo

O objeto Match fornece atributos e métodos para obter informações sobre a pesquisa e os resultados:

  • span() O tupla retornado contém a posição de início e fim da correspondência
  • .string Retornar a string passada para a função
  • group() Retornar a parte da string correspondente

Exemplo

Imprimir a posição da primeira ocorrência correspondente (posição de início e fim).

Procurar expressões regulares que começam com uma letra maiúscula "C" em qualquer palavra:

import re
str = "China é um país grande"
x = re.search(r"\bC\w+", str)
print(x.span())

Executar Exemplo

Exemplo

Imprimir a string passada para a função:

import re
str = "China é um país grande"
x = re.search(r"\bC\w+", str)
print(x.string)

Executar Exemplo

Exemplo

Imprimir a parte da string correspondente.

Procurar expressões regulares que começam com uma letra maiúscula "C" em qualquer palavra:

import re
str = "China é um país grande"
x = re.search(r"\bC\w+", str)
print(x.group())

Executar Exemplo

Notas:Se não houver itens correspondentes, o valor retornado Nenhumem vez de objeto Match.