Zum Hauptinhalt springen

Zeichenketten mit regulären Ausdrücken bereinigen

Dieses Tutorial basiert auf Inhalten aus DataCamps Kurs Cleaning Data in Python und zeigt dir, wie du Zeichenketten mit regulären Ausdrücken bereinigst.
· 4 Min. lesen

Entdecke KI

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.

Schau dir auch DataCamps Python String Tutorial an.

Themen

Ähnlich