Aan de slagGa gratis aan de slag

Oefenen met reguliere expressies: re.split() en re.findall()

Nu ga je zelf enkele reguliere expressies schrijven om cijfers, strings en niet-alfanumerieke tekens te matchen. Bekijk eerst my_string door het in de IPython Shell te printen, zodat je kunt bepalen hoe je de verschillende stappen het beste matcht.

Let op: het is belangrijk om je regex-patronen te prefixen met r, zodat ze precies zo geïnterpreteerd worden als jij wilt. Anders kun je problemen krijgen met escape-sequenties in strings. In Python staat "\n" bijvoorbeeld voor een nieuwe regel, maar met de r-prefix wordt het geïnterpreteerd als de ruwe string "\n" — dus het teken "\" gevolgd door het teken "n" — en niet als een nieuwe regel.

De module voor reguliere expressies, re, is al voor je geïmporteerd.

Onthoud uit de video dat de syntaxis voor de regex-bibliotheek is dat je altijd eerst het patroon en daarna de string meegeeft.

Deze oefening maakt deel uit van de cursus

Introductie tot Natural Language Processing in Python

Cursus bekijken

Oefeninstructies

  • Splits my_string op elk einde van een zin. Doe dit als volgt:
    • Schrijf een patroon sentence_endings om zinsafsluitingen te matchen (.?!).
    • Gebruik re.split() om my_string op het patroon te splitsen en print het resultaat.
  • Zoek en print alle woorden met een hoofdletter in my_string door een patroon capitalized_words te schrijven en re.findall() te gebruiken.
    • Weet je nog het [a-z]-patroon uit de video om groepen kleine letters te matchen? Pas dat patroon aan om groepen hoofdletters te matchen.
  • Schrijf een patroon spaces om één of meer spaties te matchen ("\s+") en gebruik vervolgens re.split() om my_string op dit patroon te splitsen, met behoud van alle interpunctie. Print het resultaat.
  • Vind alle cijfers in my_string door een patroon digits ("\d+") te schrijven en re.findall() te gebruiken. Print het resultaat.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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.____(____, ____))
Code bewerken en uitvoeren