Regex für Datumsangaben in Python: Ein Leitfaden

Hallo liebe Python-Entwickler,

es ist nicht ungewöhnlich, dass wir in unserer täglichen Arbeit als EntwicklerInnen Datumsangaben verarbeiten müssen. Es gibt viele Bibliotheken, die dabei helfen können, aber manchmal ist die Verwendung von regulären Ausdrücken (Regex) die einfachste Methode. In diesem Blogpost möchte ich verschiedene Regex-Muster vorstellen, um Datumsangaben in verschiedenen Formaten zu extrahieren.

Warum Regex?

Reguläre Ausdrücke bieten eine schnelle und effiziente Möglichkeit, Muster in Texten zu erkennen. Wenn man beispielsweise ein Datumsformat in einer großen Menge an Text finden möchten, ist Regex oft die schnellste Lösung auch wenn NLP Modelle natürlich besondere Möglichkeiten bieten.

Regex für verschiedene Datumsformate

MM/DD/YYYY oder MM-DD-YYYY

\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b

DD/MM/YYYY oder DD-MM-YYYY

\b(0[1-9]|[12]\d|3[01])[-/](0[1-9]|1[0-2])[-/](19\d\d|20\d\d)\b

YYYY/MM/DD oder YYYY-MM-DD

\b(19\d\d|20\d\d)[-/](0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])\b

MM-DD-YY oder MM/DD/YY

\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](\d\d)\b

YYYY-MM-DD (ISO 8601)

\b(19\d\d|20\d\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\b

Python Codebeispiel

Hier ist ein einfaches Beispiel, wie man diese Regex-Muster in Python verwenden kann:

import re
def find_dates(text, pattern):
    return re.findall(pattern, text)
text = "Das Datum ist 09/02/2023 und der andere Termin ist am 12-12-2024."
pattern = r"\b(0[1-9]|1[0-2])[-/](0[1-9]|[12]\d|3[01])[-/](19\d\d|20\d\d)\b"
dates = find_dates(text, pattern)
print("Gefundene Daten:", dates)

Schlusswort

Das Erkennen von Datumsangaben mit Regex in Python ist eine wertvolle Fähigkeit, die Ihnen viel Zeit sparen kann. Beachten sollte man jedoch, dass diese Muster nicht für Monate mit weniger als 31 Tagen oder Schaltjahre optimiert sind, da Regex nur feste Regeln implementieren können. Für komplexere Anforderungen sollte man eine spezialisierte Datumsbibliothek wie dateutil oder pandas oder das Konfuzio SDK in Erwägung ziehen.

Ich hoffe, dieser Leitfaden war hilfreich! Bei Fragen oder Anregungen, gerne einen Kommentar zu hinterlassen.

Bis zum nächsten Mal!

«
»
Avatar de Florian Zyprian

Neueste Artikel