OK, Schaltjahr gefunden.
Kann man dem RegEx nicht auch irgendwie sagen, daß es Leerzeichen im Vergleichscode ignorieren soll?
Wenn ja, dann kann man es auch gleich formatiert lassen.
Code:
(
(
(0[1-9]|[12]\d|3[01])
[\/\.-]
(0[13578]|1[02])
[\/\.-]
((19|[2-9]\d)\d{2})
\s
(0[0-9]|1[0-9]|2[0-3])
:
([0-5][0-9])
:
([0-5][0-9])
)|(
(0[1-9]|[12]\d|30)
[\/\.-]
(0[13456789]|1[012])
[\/\.-]
((19|[2-9]\d)\d{2})
\s
(0[0-9]|1[0-9]|2[0-3])
:
([0-5][0-9])
:
([0-5][0-9])
)|(
(0[1-9]|1\d|2[0-8])
[\/\.-]
(02)
[\/\.-]
((19|[2-9]\d)\d{2})
\s
(0[0-9]|1[0-9]|2[0-3])
:
([0-5][0-9])
:
([0-5][0-9])
)|(
(29)
[\/\.-]
(02)
[\/\.-]
(
(1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])
|
((16|[2468][048]|[3579][26])00)
)
\s
(0[0-9]|1[0-9]|2[0-3])
:
([0-5][0-9])
)
)
Fällt dir was auf?
Irgendwas stimmt im letzten Block mit der Uhrzeit nicht.
Aber da der Teil in allen Oder-Blöcken identisch sein sollte, hätte es doch gereicht den Teil auch nur einmal auszuwerden.
Würde den Code gleich mal stark kürzen, vorallem wenn man auch gleich mit alle unnötigen Klammern weglässt.
Außer du willst auch die Sommer-/Winterzeit, sowie Schaltminuten und Schaltsekunden mit beachten.
^ am Anfang und $ am Ende?
Und innerhalb der [ ] sind "." und Co. keine Platzhalter, also ginge auch [/.-]