Dieses Tutorial basiert auf Inhalten aus DataCamps Kurs Cleaning Data in Python und zeigt dir, wie du Zeichenketten mit regulären Ausdrücken bereinigst.
Wenn du unseren kostenlosen Einführungskurs zu R machen möchtest, findest du hier den Link.
Numerische Werte aus Zeichenketten extrahieren
Das Extrahieren von Zahlen aus Strings ist eine gängige Aufgabe, besonders bei unstrukturierten Daten oder Logdateien.
Angenommen, du hast folgenden String: 'the recipe calls for 6 strawberries and 2 bananas'.
Es wäre praktisch, die 6 und die 2 aus diesem String zu ziehen, um sie später für den Vergleich des Erdbeer-zu-Bananen-Verhältnisses zu nutzen.
Wenn du einen regulären Ausdruck verwendest, um mehrere Zahlen zu extrahieren (genauer: mehrere Musterübereinstimmungen), kannst du die Funktion re.findall() nutzen. Dan ist im Video nicht darauf eingegangen, aber die Anwendung ist einfach: Du übergibst ein Muster und einen String an re.findall(), und es liefert eine Liste mit allen Treffern zurück.
Anleitung
Importiere re.
Schreibe ein Muster, das alle Zahlen in folgendem String findet: 'the recipe calls for 10 strawberries and 1 banana'. Gehe dazu so vor:
Verwende die Funktion re.findall() und übergib zwei Argumente: zuerst das Muster, dann den String.
\d ist das Muster für Ziffern. Hänge ein + an, damit das vorherige Element ein- oder mehrmals gematcht wird. So wird 10 als eine Zahl erkannt und nicht als 1 und 0.
Gib die Treffer aus, um zu bestätigen, dass dein regulärer Ausdruck die Werte 10 und 1 gefunden hat.
# Import the regular expression module
____
# Find the numeric values: matches
matches = re.findall('____', '____')
# Print the matches
print(____)
Wenn das klar ist, mach mit der nächsten Übung weiter! Falls nicht, hier ist ein Überblicksvideo.
Überblicksvideo: Reguläre Ausdrücke zum Bereinigen von Strings in Python
Pattern Matching
In dieser Übung vertiefst du deine Fähigkeiten mit regulären Ausdrücken. Für jeden gegebenen String schreibst du das passende Muster, das ihn matched.
Anleitung
Schreibe Muster für:
Eine Telefonnummer im Format xxx-xxx-xxxx. Das hast du bereits in einer früheren Übung gemacht.
Einen String im Format: Ein Dollarzeichen, eine beliebige Anzahl von Ziffern, ein Dezimalpunkt, 2 Ziffern.
Verwende \$ für das Dollarzeichen, \d* für eine beliebige Anzahl Ziffern, \. für den Dezimalpunkt und \d{x} für genau x Ziffern.
Ein Großbuchstabe, gefolgt von einer beliebigen Anzahl alphanumerischer Zeichen.
Nutze [A-Z], um einen Großbuchstaben zu matchen, gefolgt von \w* für eine beliebige Anzahl alphanumerischer Zeichen.
# Write the first pattern
pattern1 = bool(re.match(pattern='____', string='123-456-7890'))
print(pattern1)
# Write the second pattern
pattern2 = bool(re.match(pattern='____', string='$123.45'))
print(pattern2)
# Write the third pattern
pattern3 = bool(re.match(pattern='____', string='Australia'))
print(pattern3)
Wenn du mehr aus diesem Kurs mitnehmen willst, hier ist der Link.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Wenn du unseren kostenlosen Einführungskurs zu R machen möchtest, findest du hier den Link.
Numerische Werte aus Zeichenketten extrahieren
Das Extrahieren von Zahlen aus Strings ist eine gängige Aufgabe, besonders bei unstrukturierten Daten oder Logdateien.
Angenommen, du hast folgenden String:
'the recipe calls for 6 strawberries and 2 bananas'.Es wäre praktisch, die
6und die2aus diesem String zu ziehen, um sie später für den Vergleich des Erdbeer-zu-Bananen-Verhältnisses zu nutzen.Wenn du einen regulären Ausdruck verwendest, um mehrere Zahlen zu extrahieren (genauer: mehrere Musterübereinstimmungen), kannst du die Funktion
re.findall()nutzen. Dan ist im Video nicht darauf eingegangen, aber die Anwendung ist einfach: Du übergibst ein Muster und einen String anre.findall(), und es liefert eine Liste mit allen Treffern zurück.Anleitung
re.'the recipe calls for 10 strawberries and 1 banana'. Gehe dazu so vor:re.findall()und übergib zwei Argumente: zuerst das Muster, dann den String.\dist das Muster für Ziffern. Hänge ein+an, damit das vorherige Element ein- oder mehrmals gematcht wird. So wird10als eine Zahl erkannt und nicht als1und0.10und1gefunden hat.Wenn das klar ist, mach mit der nächsten Übung weiter! Falls nicht, hier ist ein Überblicksvideo.
Überblicksvideo: Reguläre Ausdrücke zum Bereinigen von Strings in Python
Pattern Matching
In dieser Übung vertiefst du deine Fähigkeiten mit regulären Ausdrücken. Für jeden gegebenen String schreibst du das passende Muster, das ihn matched.
Anleitung
xxx-xxx-xxxx. Das hast du bereits in einer früheren Übung gemacht.\$für das Dollarzeichen,\d*für eine beliebige Anzahl Ziffern,\.für den Dezimalpunkt und\d{x}für genauxZiffern.[A-Z], um einen Großbuchstaben zu matchen, gefolgt von\w*für eine beliebige Anzahl alphanumerischer Zeichen.Wenn du mehr aus diesem Kurs mitnehmen willst, hier ist der Link.
Schau dir auch DataCamps Python String Tutorial an.