Reguläre Ausdrücke: re.split() und re.findall()
Jetzt kannst du eigene reguläre Ausdrücke schreiben, um Ziffern, Zeichenketten und nicht-alphanumerische Zeichen zu matchen. Schau dir zuerst my_string an, indem du diesen in der IPython Shell ausgibst, um zu entscheiden, welches Muster du für welchen Schritt benötigst.
Hinweis: Es ist wichtig, dass deinen Regex-Muster ein r vorangestellt wird, damit sie genau so interpretiert werden, wie du es beabsichtigst. Andernfalls kann es zu Problemen mit Escape-Sequenzen in Strings kommen. Zum Beispiel steht "\n" in Python für einen Zeilenumbruch. Wenn du jedoch das Präfix r verwendest, wird es als roher String "\n" interpretiert – also als das Zeichen "\" gefolgt vom Zeichen "n" – und nicht als Zeilenumbruch.
Das Modul für reguläre Ausdrücke, re, wurde bereits für dich importiert.
Erinnere dich aus dem Video: Bei der Regex-Bibliothek gibst du zuerst das Muster und danach den String an.
Diese Übung ist Teil des Kurses
Einführung in Natural Language Processing mit Python
Anleitung zur Übung
- Teile
my_stringan jedem Satzende:- Schreibe ein Muster namens
sentence_endings, um Satzendungen zu matchen (.?!). - Verwende
re.split(), ummy_stringanhand des Musters zu splitten, und gib das Ergebnis aus.
- Schreibe ein Muster namens
- Finde und gib alle großgeschriebenen Wörter in
my_stringaus, indem du ein Muster namenscapitalized_wordsschreibst undre.findall()verwendest.- Erinnerst du dich an das im Video gezeigte Muster
[a-z]zum Matchen von Kleinbuchstabengruppen? Passe es so an, dass Großbuchstabengruppen gematcht werden.
- Erinnerst du dich an das im Video gezeigte Muster
- Schreibe ein Muster namens
spaces, um ein oder mehrere Leerzeichen zu matchen ("\s+"), und verwende dannre.split(), ummy_stringanhand dieses Musters zu splitten, wobei alle Satzzeichen erhalten bleiben. Gib das Ergebnis aus. - Finde alle Ziffern in
my_string, indem du ein Muster namensdigits("\d+") schreibst undre.findall()verwendest. Gib das Ergebnis aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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.____(____, ____))