Praticando expressões regulares: re.split() e re.findall()
Agora você terá a oportunidade de escrever algumas expressões regulares para corresponder a dígitos, cadeias de caracteres e caracteres não alfanuméricos. Dê uma olhada em my_string primeiro imprimindo-o no Shell IPython, para determinar como você pode combinar melhor as diferentes etapas.
Observação: É importante prefixar seus padrões regex com r para garantir que seus padrões sejam interpretados da maneira que você deseja. Caso contrário, você poderá encontrar problemas relacionados a sequências de escape em cadeias de caracteres. Por exemplo, "\n" em Python é usado para indicar uma nova linha, mas se você usar o prefixo r, ele será interpretado como a string bruta "\n" - ou seja, o caractere "\" seguido pelo caractere "n" - e não como uma nova linha.
O módulo de expressão regular re já foi importado para você.
Lembre-se de que, no vídeo, a sintaxe da biblioteca regex é sempre passar o padrão primeiro e, em seguida, a cadeia de caracteres.
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 frase. Para fazer isso:Escreva um padrão chamado
sentence_endingspara corresponder às terminações de frases (.?!).Use
re.split()para dividirmy_stringno padrão e imprimir o resultado.
Encontre e imprima todas as palavras em maiúsculas em
my_stringescrevendo um padrão chamadocapitalized_wordse usandore.findall().- Você se lembra do padrão
[a-z]mostrado no vídeo para combinar grupos de letras minúsculas? Modifique esse padrão adequadamente para corresponder a grupos de letras maiúsculas.
- Você se lembra do padrão
Escreva um padrão chamado
spacespara corresponder a um ou mais espaços ("\s+") e, em seguida, usere.split()para dividirmy_stringnesse 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.____(____, ____))