Resumo : neste tutorial, você aprenderá como usar conjuntos e intervalos para criar padrões que correspondam a um conjunto de caracteres.
Vários caracteres ou conjuntos de caracteres entre colchetes []
significam correspondência para qualquer caractere ou conjunto de caracteres entre eles.
Conjuntos
Por exemplo, [abc]
significa qualquer um dos três caracteres. 'a'
, 'b'
, ou 'c'
. O [abc]
é chamado de conjunto. E você pode usar o conjunto com caracteres regulares para construir um padrão de pesquisa.
Por exemplo, o programa a seguir usa o padrão licen[cs]e
que corresponde license
a e licence
:
import re
s = 'A licence or license'
pattern = 'licen[cs]e'
matches = re.finditer(pattern, s)
for match in matches:
print(match.group())
Linguagem de código: PHP ( php )
Saída:
licence
license
O padrão licen[cs]e
procura por:
licen
- então uma das letras
[cs]
- então
e
.
Portanto, corresponde license
a e licence
.
Gamas
Quando um conjunto consiste em muitos caracteres, por exemplo, from a
to z
ou 1
to 9
, será entediante listá-los em um conjunto. Em vez disso, você pode usar intervalos de caracteres entre colchetes. Por exemplo, [a-z]
é um caractere no intervalo de a
até z
e [0-9]
é um dígito de 0
até 9
.
Além disso, você pode usar vários intervalos dentro dos mesmos colchetes. Por exemplo, [a-z0-9]
tem dois intervalos que correspondem a um caractere que é de a
até z
ou um dígito de 0
até 9
.
Da mesma forma, você pode usar um ou mais conjuntos de caracteres entre colchetes, como [\d\s]
um dígito ou um caractere de espaço.
Da mesma forma, você pode misturar o personagem com conjuntos de caracteres. Por exemplo, [\d_]
correspondências para um dígito ou sublinhado.
Excluindo conjuntos e intervalos
Para negar um conjunto ou intervalo, você usa o caractere circunflexo ( ^
) no início do conjunto e intervalo. Por exemplo, o intervalo [^0-9]
corresponde a qualquer caractere, exceto um dígito. É o mesmo que o conjunto de caracteres \D
.
Observe que regex também usa o sinal de intercalação ( ^
) como uma âncora que corresponde ao início de uma string. No entanto, se você usar o sinal de intercalação ( ^
) entre colchetes, a regex o tratará como um operador de negação, não como uma âncora.
O exemplo a seguir usa o sinal de intercalação( ^
) para negar o conjunto [aeoiu]
para corresponder às consoantes na string 'Python'
:
import re
s = 'Python'
pattern = '[^aeoiu]'
matches = re.finditer(pattern, s)
for match in matches:
print(match.group())
Linguagem de código: JavaScript ( javascript )
Saída:
P
y
t
h
n
Resumo
- Um conjunto ou intervalo corresponde a qualquer caractere único ou conjunto de caracteres especificado entre colchetes […].
- Use o
^
operador circunflexo ( ) para negar um conjunto ou intervalo como[^...]
.