Praticando expressões regulares: re.split() e re.findall()
Agora você vai escrever algumas expressões regulares para corresponder a dígitos, strings e caracteres não alfanuméricos. Primeiro, dê uma olhada em my_string imprimindo-a no IPython Shell para decidir como corresponder melhor às diferentes etapas.
Observação: é importante prefixar seus padrões de regex com r para garantir que eles sejam interpretados do jeito que você deseja. Caso contrário, você pode ter problemas com sequências de escape em strings. Por exemplo, "\n" em Python indica uma nova linha, mas se você usar o prefixo r, isso será interpretado como a string bruta "\n" — ou seja, o caractere "\" seguido do caractere "n" — e não como uma nova linha.
O módulo de expressões regulares re já foi importado para você.
Lembre-se do vídeo: a sintaxe da biblioteca de regex é sempre passar o padrão primeiro e depois a string.
Este exercício faz parte do curso
Introdução ao Processamento de Linguagem Natural em Python
Instruções do exercício
- Divida
my_stringem cada final de sentença. Para fazer isso:- Escreva um padrão chamado
sentence_endingspara corresponder a finais de sentença (.?!). - Use
re.split()para dividirmy_stringusando o padrão e imprima o resultado.
- Escreva um padrão chamado
- Encontre e imprima todas as palavras iniciadas com letra maiúscula em
my_stringescrevendo um padrão chamadocapitalized_wordse usandore.findall().- Lembra do padrão
[a-z]mostrado no vídeo para corresponder a grupos de minúsculas? Modifique esse padrão adequadamente para corresponder a grupos em maiúsculas.
- Lembra do padrão
- Escreva um padrão chamado
spacespara corresponder a um ou mais espaços ("\s+") e então usere.split()para dividirmy_stringcom esse padrão, mantendo toda a pontuação intacta. Imprima o resultado. - Encontre todos os dígitos em
my_stringescrevendo um padrão chamadodigits("\d+") e usandore.findall(). Imprima o resultado.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Write a pattern to match sentence endings: sentence_endings
sentence_endings = r"[___]"
# Split my_string on sentence endings and print the result
print(re.____(____, ____))
# Find all capitalized words in my_string and print the result
capitalized_words = r"[___]\w+"
print(re.____(____, ____))
# Split my_string on spaces and print the result
spaces = r"___"
print(re.____(____, ____))
# Find all digits in my_string and print the result
digits = r"___"
print(re.____(____, ____))