IniziaInizia gratis

Esercitarsi con le espressioni regolari: re.split() e re.findall()

Ora hai l'occasione di scrivere alcune espressioni regolari per trovare cifre, stringhe e caratteri non alfanumerici. Prima dai un'occhiata a my_string stampandola nella IPython Shell, così da capire come agganciare al meglio i vari passaggi.

Nota: è importante anteporre r ai tuoi pattern regex per assicurarti che vengano interpretati come desideri. Altrimenti potresti incontrare problemi con le sequenze di escape nelle stringhe. Per esempio, in Python "\n" indica un a capo, ma se usi il prefisso r, verrà interpretato come stringa grezza "\n", cioè il carattere "\" seguito dal carattere "n", e non come un a capo.

Il modulo per le espressioni regolari re è già stato importato per te.

Ricorda dal video che la sintassi della libreria regex prevede di passare sempre prima il pattern e poi la stringa.

Questo esercizio fa parte del corso

Introduzione al Natural Language Processing in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Suddividi my_string alla fine di ogni frase. Per farlo:
    • Scrivi un pattern chiamato sentence_endings per intercettare le chiusure di frase (.?!).
    • Usa re.split() per dividere my_string in base al pattern e stampa il risultato.
  • Trova e stampa tutte le parole con l'iniziale maiuscola in my_string scrivendo un pattern chiamato capitalized_words e usando re.findall().
    • Ricordi il pattern [a-z] mostrato nel video per trovare gruppi di minuscole? Modificalo in modo opportuno per trovare gruppi di maiuscole.
  • Scrivi un pattern chiamato spaces per intercettare uno o più spazi ("\s+") e poi usa re.split() per dividere my_string in base a questo pattern, mantenendo intatta tutta la punteggiatura. Stampa il risultato.
  • Trova tutte le cifre in my_string scrivendo un pattern chiamato digits ("\d+") e usando re.findall(). Stampa il risultato.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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.____(____, ____))
Modifica ed esegui il codice