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.
#!trpst#trp-gettext data-trpgettextoriginal=2316#!trpen#本文章以德语撰写,可自动翻译成其他语言并进行重读。我们欢迎您在文章末尾进行反馈。#!trpst#/trp-gettext#!trpen#
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!