Resumo : neste tutorial, você aprenderá sobre conjuntos de caracteres em expressões regulares, incluindo dígitos, palavras, espaços em branco e ponto (.).
Introdução aos conjuntos de caracteres regex do Python
Um conjunto de caracteres (ou classe de caracteres) é um conjunto de caracteres, por exemplo, dígitos (de 0 a 9), alfabetos (de a a z) e espaços em branco.
Um conjunto de caracteres permite construir expressões regulares com padrões que correspondem a uma string com um ou mais caracteres em um conjunto.
\d: conjunto de caracteres de dígitos
Expressões regulares são usadas \d
para representar um conjunto de caracteres de dígitos que corresponde a um único dígito de 0
até 9
.
O exemplo a seguir usa a finditer()
função para corresponder cada dígito em uma string usando o \d
conjunto de caracteres:
import re
s = 'Python 3.0 was released in 2008'
matches = re.finditer('\d', s)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
3
0
2
0
0
8
Linguagem de código: Python ( python )
Para corresponder a um grupo de dois dígitos, você usa o \d\d
. Por exemplo:
import re
s = 'Python 3.0 was released in 2008'
matches = re.finditer('\d\d', s)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
20
08
Linguagem de código: Python ( python )
Da mesma forma, você pode combinar um grupo de quatro dígitos usando o \d\d\d\d
padrão:
import re
s = 'Python 3.0 was released in 2008'
matches = re.finditer('\d\d\d\d', s)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
2008
Linguagem de código: Python ( python )
Posteriormente, você aprenderá como usar quantificadores para encurtar o padrão. Então, em vez de usar o \d\d\d\d
padrão, você pode usar o mais curto, como\d{4}
\w: o conjunto de caracteres da palavra
Expressões regulares são usadas \w
para representar o conjunto de caracteres da palavra. Corresponde \w
a um único caractere ASCII, incluindo alfabeto latino, dígito e sublinhado ( _
).
O exemplo a seguir usa a finditer()
função para corresponder a cada caractere de palavra em uma string usando o \w
conjunto de caracteres:
import re
s = 'Python 3.0'
matches = re.finditer('\w', s)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
P
y
t
h
o
n
3
0
Linguagem de código: Python ( python )
Observe que os espaços em branco e .
não estão incluídos nas correspondências.
\s : conjunto de caracteres de espaço em branco
O \s
espaço em branco corresponde, incluindo um espaço, uma tabulação, uma nova linha, um retorno de carro e uma tabulação vertical.
O exemplo a seguir usa o conjunto de caracteres de espaço em branco para corresponder a um espaço em uma string:
import re
s = 'Python 3.0'
matches = re.finditer('\s', s)
for match in matches:
print(match)
Linguagem de código: Python ( python )
Saída:
<re.Match object; span=(6, 7), match=' '>
Linguagem de código: Python ( python )
Conjuntos de caracteres inversos
Um conjunto de caracteres possui um conjunto de caracteres inverso que usa a mesma letra, mas em maiúsculas. A tabela a seguir mostra os conjuntos de caracteres e seus inversos:
Conjunto de caracteres | Conjunto de caracteres inversos | Descrição |
---|---|---|
\d |
\D |
Corresponder a um único caractere, exceto um dígito |
\w |
\W |
Corresponder a um único caractere que não seja um caractere de palavra |
\s |
\S |
Corresponde a um único caractere, exceto espaço em branco |
O exemplo a seguir usa o \D
para corresponder ao não dígito de um número de telefone:
import re
phone_no = '+1-(650)-513-0514'
matches = re.finditer('\D', phone_no)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
+
-
(
)
-
-
Linguagem de código: Python ( python )
Para transformar o número de telefone +1-(650)-513-0514 em 16505130514, você pode usar a função sub():
import re
phone_no = re.sub('\D', '', '+1-(650)-513-0514')
print(phone_no)
Linguagem de código: Python ( python )
Saída:
16505130514
Linguagem de código: Python ( python )
Neste exemplo, a sub()
função substitui o caractere que corresponde ao padrão \D
pela string literal ''
no número de telefone formatado.
O conjunto de caracteres ponto(.)
O conjunto de caracteres ponto ( .
) corresponde a qualquer caractere único, exceto a nova linha ( \n
). O exemplo a seguir usa o conjunto de caracteres ponto (.) para corresponder a cada caractere, exceto à nova linha:
import re
version = "Python\n4"
matches = re.finditer('.', version)
for match in matches:
print(match.group())
Linguagem de código: Python ( python )
Saída:
P
y
t
h
o
n
4
Linguagem de código: Python ( python )
Resumo
- Use
\d
o conjunto de caracteres para corresponder a qualquer dígito. - Use
\w
o conjunto de caracteres para corresponder a qualquer caractere de palavra única. - Use
\s
o conjunto de caracteres para corresponder a qualquer espaço em branco. - O conjunto de caracteres
\D
,\W
,\S
são os conjuntos inversos de\d
,\w
e\s
conjunto de caracteres. - Use o conjunto de caracteres de ponto (
.
) para corresponder a qualquer caractere, exceto uma nova linha.