Tag Archiv für RegEx

Datum in Format YYYYDD erkennen

Geht eigentlich gaaaaanz einfach:

^2\d{3}((?:1[0-2])|(?:0[1-9]))$

Was macht das? Es akzeptiert alles was als erste Stelle eine 2 hat, gefolgt von genau 3 Zahlen.
Danach kommt eine Fallunterscheidung, die prüft, ob die nächste Stelle eine 1 ist, dann sind als letzte Stelle nur 0-2 erlaubt oder ob die nächste Stelle eine 0 ist, dann darf die letzte Stelle alles zwischen 1 und 9 sein.