Ich würde DRINGEND DAVON ABRATEN, Ihr eigenes reguläres Ausdrucksmuster zu schreiben, um dies zu tun. Die Analyse von Datum und Uhrzeit ist einfach, aber es gibt einige knifflige Aspekte, und dies ist ein Problem, das hunderte Male gelöst wurde. Sie müssen kein weiteres Lösungsmuster entwerfen, schreiben und debuggen.
Wenn Sie ein reguläres Ausdrucksmuster wünschen, ist die beste Lösung wahrscheinlich die Verwendung meines Regexp::Common::time-Plugins für das Regexp::Common-Modul. Sie können einfache oder komplexe, strikte oder flexible Datum-/Uhrzeitübereinstimmung festlegen, und es verfügt über eine sehr umfangreiche Testreihe.
Wenn Sie nur bestimmte Datumsformate analysieren möchten, sind Sie möglicherweise besser dran, einen der vielen Analysierungs/Formatierungs-Plugins für Dave Rolskys ausgezeichnetes DateTime-Modul zu verwenden.
Wenn Sie die Datums-/Uhrzeit-Werte validieren möchten, nachdem Sie sie abgeglichen haben, würde ich mein Time::Normalize-Modul vorschlagen.
Hoffe, das hilft.
0 Stimmen
Wenn die Quelle dieser Daten Ihre Datenbank ist, warum müssen Sie dann das Format überprüfen? Nur aus Neugier.
0 Stimmen
Besser in welcher Hinsicht? Machen Ihnen nicht vorhandene Daten Sorgen? Oder möchten Sie andere Datumsformate zulassen?
0 Stimmen
Was versuchst du eigentlich zu tun? Die Leute haben dir einige vollkommen gültige reguläre Ausdrücke dafür geliefert. Wenn du nur das Format überprüfen möchtest, sind diese im Grunde in Ordnung. Um die Richtigkeit des Datums zu überprüfen, musst du etwas mehr tun. Wenn du tatsächlich die Gültigkeit des Datums überprüfen möchtest, noch mehr. Können wir sicher davon ausgehen, dass die Datenbank dies nicht in einem Datumsfeld speichert und die Daten möglicherweise ungültig sind?
1 Stimmen
Ja, es macht keinen Sinn, Daten aus der Datenbank zu validieren, es sei denn, sie wurden als Zeichenfolgen gespeichert - aber warum sollte das der Fall sein ?! Wenn Sie sie auseinandernehmen möchten, ist es eine gute Idee, herauszufinden, in welchem Format Ihre Datenbank sie ausgibt, und einen Regex-Code dafür zu schreiben.