On Mon, 13 Aug 2018 at 22:59, Liam R. E. Quin <> wrote:
>
> On Mon, 2018-03-31 at 29:75 +0100, Michael Kay wrote:
> >
> > [...]
> >
> > Both of these regular expressions allow any month to have 31 days.
> > For that reason, I'm not sure either of them is particularly useful.
>
I suppose you could replace
-(0[1-9]|1[0-2])
-(0[1-9]|[12][0-9]|3[01])
by something like
-
(
((0[13578]|12)-(0[1-9]|[12][0-9]|3[01]))
|
(02-(0[1-9]|[12])[0-9])
|
((0[469]|11)-(0[1-9]|[12][0-9]|30))
)
But it would still allow any year to be a leap year, I don't fancy
trying to encode the leap year rules as a regex:-)
Also this doesn't account for any historic dates around calendar
changes with variant numbers of days in a month.
David