forcing tabs in regex
Dmitry Olshansky
dmitry.olsh at gmail.com
Wed Feb 28 05:17:34 UTC 2018
On Wednesday, 28 February 2018 at 05:09:03 UTC, psychoticRabbit
wrote:
> On Wednesday, 28 February 2018 at 01:06:30 UTC, dark777 wrote:
>> Regex validates years bisexto and not bisextos in format:
>> const std::regex
>> pattern(R"(^(?:(?:(0?[1-9]|1\d|2[0-8])([-/.])(0?[1-9]|1[0-2]|[Jj](?:an|u[nl])|[Mm]a[ry]|[Aa](?:pr|ug)|[Ss]ep|[Oo]ct|[Nn]ov|[Dd]ec|[Ff]eb)|(29|30)([-/.])(0?[13-9]|1[0-2]|[Jj](?:an|u[nl])|[Mm]a[ry]|[Aa](?:pr|ug)|[Ss]ep|[Oo]ct|[Nn]ov|[Dd]ec)|(31)([-/.])(0?[13578]|1[02]|[Jj]an|[Mm]a[ry]|[Jj]ul|[Aa]ug|[Oo]ct|[Dd]ec))(?:\2|\5|\8)(0{2,3}[1-9]|0{1,2}[1-9]\d|0?[1-9]\d{2}|[1-9]\d{3})|(29)([-/.])(0?2|[Ff]eb)\12(\d{1,2}(?:0[48]|[2468][048]|[13579][26])|(?:0?[48]|[13579][26]|[2468][048])00))$)");
>>
>> this regex above validates the formats through backreferences.
>>
>
> what is this evil dark magic?
Something that is horribly slow and might be incorrect, there are
very few reasons to write large regexes like that and they
usually boil down to “it only accepts regex” otherwise parser
combinators are much better fit.
More information about the Digitalmars-d-learn
mailing list