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