Regulární výraz pro datum
Datum může být zapsáno v mnoha tvarech jako DD/MM/RR, MM.DD.RRRR apod. nebo ve variantách, které povolují i jednoznakové označení dne či měsíce (tedy např. 1.1.2006 i 01.01.2006).
V okamžiku, kdy známe dílčí regulární výrazy pro den, měsíc a rok není již problém sestavit celý regulární výraz pro datum v požadovaném tvaru. Jak tedy vypadají regulární výrazy pro den, měsíc a rok?
- Den
- 0[1-9]|[12][0-9]|3[01] – dny 01-31
- 0?[1-9]|[12][0-9]|3[01] – dny (0)1-31
- 0[1-9]|[12][0-9]|30 – dny 01-30
- 0[1-9]|1[0-9]|2[0-8] – dny 01-28
- 0[1-9]|1[0-9]|2[0-9] – dny 01-29
- Měsíc
- 0[1-9]|1[0-2] – měsíce 01-12
- 0?[1-9]|1[0-2] – měsíce (0)1-12
- jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec – anglické zkratky pro měsíce
- Rok
- [0-9]{2} – rok 00-99
- 20[0-9]{2} – rok 2000-2099
- (19|20)[0-9]{2} – rok 1900-2099
Celý regulární výraz pak může vypadat například (kde za den, měsíc a rok doplňte výše uvedené dílčí regulární výrazy):
- den\.měsíc\.rok
- den\. měsíc\. rok
- den/měsíc/rok
- rok-měsíc-den
Celý regulární výraz tak může vypadat například:
(0?[1-9]|[12][0-9]|3[01])\. ?(0?[1-9]|1[0-2])\. ?20[0-9]{2}
Uvedenému výrazu (kde jsou mezery mezi dnem, měsícem a rokem nepovinné) tak odpovídají například řetězce 20. 1. 2006, 01. 2. 2099, 01. 09. 2000 apod.