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 de exercício
Divida
my_string
em cada final de frase. Para fazer isso:Escreva um padrão chamado
sentence_endings
para corresponder às terminações de frases (.?!
).Use
re.split()
para dividirmy_string
no padrão e imprimir o resultado.
Encontre e imprima todas as palavras em maiúsculas em
my_string
escrevendo um padrão chamadocapitalized_words
e 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
spaces
para corresponder a um ou mais espaços ("\s+"
) e, em seguida, usere.split()
para dividirmy_string
nesse padrão, mantendo toda a pontuação intacta. Imprima o resultado.Encontre todos os dígitos em
my_string
escrevendo um padrão chamadodigits
("\d+"
) e usandore.findall()
. Imprima o resultado.
Exercício interativo prático
Experimente este exercício preenchendo 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.____(____, ____))