Enviar um café pro programador

Mostrando postagens com marcador Classe de caracteres. Mostrar todas as postagens
Mostrando postagens com marcador Classe de caracteres. Mostrar todas as postagens

Classes de Caracteres, em Regex Python (Tutorial parte 5)

Neste tutorial de Python, sobre Strings e Regex, vamos estudar as principais classes de caracteres em expressões regulares.

Classes de Caracteres de Regex em Python


Até o momento, em nossos tutoriais sobre Regex, usamos uma classe de caractere:
\d - os dígitos.

Todo e qualquer dígito, de 0 até 9, representamos por \d.
Ele é uma classe de caractere.

Porém, é apenas uma das classes, e usamos somente ela para fins didáticos.
Vamos ver agora as classes:
  • \d - Qualquer dígito de 0 a 9
  • \D - Qualquer caractere que não seja um dígito (contrário de \d)
  • \w - Qualquer letra, dígito ou o caractere underscore (qualquer caractere de uma palavra)
  • \W - Qualquer caractere que não seja uma letra, um dígito ou o underscore (contrário de \w)
  • \s - Qualquer espaço, tabulação ou caractere de quebra de linha,  ou seja, qualquer espaçamento
  • \S - Qualquer caractere que não seja um espaço, uma tabulação ou uma quebra de linha (contrário de \S)
Vamos supor que queiramos detectar o seguinte padrão:
  1. Um ou mais números
  2. Um espaçamento
  3. Um ou mais caractere



Para detectar um ou mais número: \d+
Para detectar apenas um espaçamento: \s
Para detectar um ou mais caractere, seja dígito ou não: \w+

Logo, nossa regex é: \d+\s\w+

Você pode usar essa expressão regular para 'catar' receitas pela internet, note que elas tem esse padrão:
1 cebola
2 bifes
3 alhos

Exemplos de Classes de Caracteres

Os 6 tipos de classes apresentadas, são os 'geralzão', do Python.
Você também pode criar suas próprias.

Por exemplo, se desejar detectar dígitos de 0 até 5, use a Regex:
r'[0-5]'

Para detectar vogais minúsculas:
r'[aeiou]' ou r'[a-u]'

Para detectar tanto letras minúsculas como minúsculas:
r'[a-zA-Z]'

Para detectar um padrão formado só por letras do alfabeto e dígitos:
r'[a-zA-Z0-9]'




E para detectar o contrário do que você deseja, basta inserir o acento circunflexo antes ^.
Por exemplo, detecta tudo menos letras do alfabeto e dígitos:
r'[^a-zA-Z0-9]'

Detectar tudo que não é dígito:
r'^\d' que é o mesmo de r'\D'