ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Divida my_string em cada final de sentença. Para fazer isso:
    • Escreva um padrão chamado sentence_endings para corresponder a finais de sentença (.?!).
    • Use re.split() para dividir my_string usando o padrão e imprima o resultado.
  • Encontre e imprima todas as palavras iniciadas com letra maiúscula em my_string escrevendo um padrão chamado capitalized_words e usando re.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.
  • Escreva um padrão chamado spaces para corresponder a um ou mais espaços ("\s+") e então use re.split() para dividir my_string com esse padrão, mantendo toda a pontuação intacta. Imprima o resultado.
  • Encontre todos os dígitos em my_string escrevendo um padrão chamado digits ("\d+") e usando re.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.____(____, ____))
Editar e executar o código