Reguläre Ausdrücke üben: re.split() und re.findall()
Jetzt hast du die Möglichkeit, einige reguläre Ausdrücke zu schreiben, die auf Ziffern, Zeichenketten und nicht-alphanumerische Zeichen passen. Sieh dir my_string
zuerst an, indem du es in der IPython Shell ausdruckst, um herauszufinden, wie du die verschiedenen Schritte am besten zusammenbringen kannst.
Hinweis: Es ist wichtig, deinen Regex-Mustern das Präfix r
voranzustellen, um sicherzustellen, dass deine Muster so interpretiert werden, wie du es möchtest. Andernfalls kann es zu Problemen mit Escape-Sequenzen in Zeichenketten kommen. Zum Beispiel wird "\n"
in Python verwendet, um eine neue Zeile anzuzeigen. Wenn du jedoch das Präfix r
verwendest, wird es als rohe Zeichenkette "\n"
interpretiert - das heißt, das Zeichen "\"
gefolgt von dem Zeichen "n"
- und nicht als neue Zeile.
Das Modul für reguläre Ausdrücke re
wurde bereits für dich importiert.
Erinnere dich aus dem Video daran, dass die Syntax für die Regex-Bibliothek darin besteht, immer zuerst das Muster und dann den String zu übergeben.
Diese Übung ist Teil des Kurses
Einführung in die natürliche Sprachverarbeitung in Python
Anleitung zur Übung
Teile
my_string
an jedem Satzende. Um dies zu tun:Schreibe ein Muster namens
sentence_endings
, um Satzenden zu finden (.?!
).Verwende
re.split()
, ummy_string
auf dem Muster zu teilen und das Ergebnis zu drucken.
Finde und drucke alle großgeschriebenen Wörter in
my_string
, indem du ein Muster namenscapitalized_words
schreibst undre.findall()
benutzt.- Erinnerst du dich an das
[a-z]
Muster, das im Video gezeigt wurde, um Kleinbuchstabengruppen zu finden? Ändere das Muster entsprechend ab, damit es auf Gruppen mit Großbuchstaben passt.
- Erinnerst du dich an das
Schreibe ein Muster namens
spaces
, das mit einem oder mehreren Leerzeichen übereinstimmt ("\s+"
) und benutze dannre.split()
, ummy_string
nach diesem Muster aufzuteilen, wobei alle Satzzeichen erhalten bleiben. Drucke das Ergebnis aus.Finde alle Ziffern in
my_string
, indem du ein Muster namensdigits
("\d+"
) schreibst undre.findall()
benutzt. Drucke das Ergebnis aus.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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.____(____, ____))