@@ -25,10 +25,10 @@ public static class DateTimeDefinitions
25
25
public const bool CheckBothBeforeAfter = false ;
26
26
public const string TillRegex = @"(?<till>\b(au|et|(jusqu')?a|avant)\b|(jusqu')?à|--|-|—|——)" ;
27
27
public const string RangeConnectorRegex = @"(?<and>\b(de\s+la|au|(jusqu')?a|et(\s*la)?)\b|(jusqu')?à|--|-|—|——)" ;
28
- public const string RelativeRegex = @"(?<order>prochaine?|de|du|ce(tte)?|l[ae]|derni[eè]re|hier|pr[eé]c[eé]dente|au\s+cours+(de|du\s*))" ;
29
- public const string StrictRelativeRegex = @"(?<order>prochaine?|derni[eè]re|hier|pr[eé]c[eé]dente|au\s+cours+(de|du\s*))" ;
28
+ public const string RelativeRegex = @"(?<order>prochaine?|de|du|ce(tte)?|l[ae]|derni[eè]re?s? |hier|pr[eé]c[eé]dente|au\s+cours+(de|du\s*))" ;
29
+ public const string StrictRelativeRegex = @"(?<order>prochaine?|derni[eè]re?s? |hier|pr[eé]c[eé]dente|au\s+cours+(de|du\s*))" ;
30
30
public const string NextSuffixRegex = @"(?<order>prochain(es?)?|suivante)\b" ;
31
- public const string PastSuffixRegex = @"(?<order>derni[eè]r(es?) ?|pr[eé]c[eé]dente)\b" ;
31
+ public const string PastSuffixRegex = @"(?<order>derni[eè]re?s ?|pr[eé]c[eé]dente)\b" ;
32
32
public const string ThisPrefixRegex = @"(?<order>ce(tte)?|au\s+cours+(du|de))\b" ;
33
33
public const string RangePrefixRegex = @"(du|depuis|des?|entre)" ;
34
34
public const string DayRegex = @"(?<day>(?:3[0-1]|[1-2]\d|0?[1-9])(e(r)?)?)(?=\b|t)" ;
@@ -53,7 +53,7 @@ public static class DateTimeDefinitions
53
53
public static readonly string RelativeMonthRegex = $@ "(?<relmonth>({ ThisPrefixRegex } \s+mois)|(mois\s+{ PastSuffixRegex } )|(mois\s+{ NextSuffixRegex } ))\b";
54
54
public const string WrittenMonthRegex = @"(?<month>avril|avr(\.)?|ao[uû]t|d[eé]cembre|d[eé]c(\.)?|f[eé]vrier|f[eé]vr?(\.)?|janvier|janv?(\.)?|juillet|jui?[ln](\.)?|mars?(\.)?|mai|novembre|nov(\.)?|octobre|oct(\.)?|septembre|sept?(\.)?(?!\s+heures))" ;
55
55
public static readonly string MonthSuffixRegex = $@ "(?<msuf>(en\s*|le\s*|de\s*|dans\s*)?({ RelativeMonthRegex } |{ WrittenMonthRegex } ))";
56
- public const string DateUnitRegex = @"(?<unit>an|mois|((l')?ann[eé]e|semaine|journ[eé]e|jour)(?<plural>s)?)\b" ;
56
+ public const string DateUnitRegex = @"(?<unit>an|(?<plural> mois) |((l')?ann[eé]e|semaine|journ[eé]e|jour)(?<plural>s)?)\b" ;
57
57
public static readonly string SimpleCasesRegex = $@ "\b((d[ue])|entre\s+)?({ DayRegex } )\s*{ TillRegex } \s*({ DayRegex } )\s+{ MonthSuffixRegex } ((\s+|\s*,\s*){ YearRegex } )?\b";
58
58
public static readonly string MonthFrontSimpleCasesRegex = $@ "\b((d[ue]|entre)\s+)?{ MonthSuffixRegex } \s+((d[ue]|entre)\s+)?({ DayRegex } )\s*{ TillRegex } \s*({ DayRegex } )((\s+|\s*,\s*){ YearRegex } )?\b";
59
59
public static readonly string MonthFrontBetweenRegex = $@ "\b{ MonthSuffixRegex } \s+(entre|d[ue]\s+)({ DayRegex } )\s*{ RangeConnectorRegex } \s*({ DayRegex } )((\s+|\s*,\s*){ YearRegex } )?\b";
@@ -83,7 +83,7 @@ public static class DateTimeDefinitions
83
83
public static readonly string ThisRegex = $@ "\b((cette(\s*semaine)?\s+){ WeekDayRegex } )|({ WeekDayRegex } (\s+cette\s*semaine))\b";
84
84
public static readonly string LastDateRegex = $@ "\b(({ WeekDayRegex } (\s*(de)?\s*la\s*semaine\s+{ PastSuffixRegex } ))|({ WeekDayRegex } (\s+{ PastSuffixRegex } )))\b";
85
85
public static readonly string NextDateRegex = $@ "\b(({ WeekDayRegex } (\s+{ NextSuffixRegex } ))|({ WeekDayRegex } (\s*(de)?\s*la\s*semaine\s+{ NextSuffixRegex } )))\b";
86
- public const string SpecialDayRegex = @"\b(avant[\s|-]hier|apr[eè]s(-demain|\s*demain)|(le\s)?jour suivant|(le\s+)?dernier jour|hier|lendemain|demain|(de\s)?la journ[ée]e|aujourd'hui)\b" ;
86
+ public const string SpecialDayRegex = @"\b(avant[\s|-]hier|apr[eè]s(-demain|\s*demain)|(le\s)?jour suivant|(le\s+)?derni[eè]re?s? jour|hier|lendemain|demain|(de\s)?la journ[ée]e|aujourd'hui)\b" ;
87
87
public const string SpecialDayWithNumRegex = @"^\b$" ;
88
88
public const string StrictWeekDay = @"\b(?<weekday>dim(anche)?|lun(di)?|mar(di)?|mer(credi)?|jeu(di)?|ven(dredi)?|sam(edi)?)s?\b" ;
89
89
public const string SetWeekDayRegex = @"\b(?<prefix>le\s+)?(?<weekday>matin([ée]e)?|apr[eè]s-midi|soir([ée]e)?|dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)s\b" ;
@@ -124,7 +124,7 @@ public static class DateTimeDefinitions
124
124
public const string MorningRegex = @"(?<morning>matin([ée]e)?)" ;
125
125
public const string AfternoonRegex = @"(?<afternoon>(d'|l')?apr[eè]s(-|\s*)midi)" ;
126
126
public static readonly string MidmorningRegex = $@ "(?<midmorning>milieu\s*d[ue]\s*{ MorningRegex } )";
127
- public const string MiddayRegex = @"(?<midday>milieu(\s*|-)d[eu]\s*(jour|midi)|apr[eè]s(-|\s*)midi|(?<=\bà \s+)midi)" ;
127
+ public const string MiddayRegex = @"(?<midday>milieu(\s*|-)d[eu]\s*(jour|midi)|apr[eè]s(-|\s*)midi|(?<=à \s+)midi)" ;
128
128
public static readonly string MidafternoonRegex = $@ "(?<midafternoon>milieu\s*d'+{ AfternoonRegex } )";
129
129
public static readonly string MidTimeRegex = $@ "(?<mid>({ MidnightRegex } |{ MidmorningRegex } |{ MidafternoonRegex } |{ MiddayRegex } ))";
130
130
public static readonly string AtRegex = $@ "\b(((?<=\b[àa]\s+)({ WrittenTimeRegex } |{ HourNumRegex } (\s+heures)?|{ BaseDateTime . HourRegex } |{ MidTimeRegex } ))|{ MidTimeRegex } )\b";
@@ -179,7 +179,7 @@ public static class DateTimeDefinitions
179
179
public static readonly string EachUnitRegex = $@ "(?<each>(chaque|toutes les|tous les)(?<other>\s+autres)?\s*{ DurationUnitRegex } )";
180
180
public const string EachPrefixRegex = @"\b(?<each>(chaque|tous les|(toutes les))\s*$)" ;
181
181
public const string SetEachRegex = @"\b(?<each>(chaque|tous les|(toutes les))\s*)" ;
182
- public const string SetLastRegex = @"(?<last>prochain|dernier| derni[eè]re|pass[ée]s|pr[eé]c[eé]dent|courant|en\s*cours)" ;
182
+ public const string SetLastRegex = @"(?<last>prochain|derni[eè]re?s? |pass[ée]s|pr[eé]c[eé]dent|courant|en\s*cours)" ;
183
183
public const string EachDayRegex = @"\s*(chaque|tous les)\s*(jour|jours)\b" ;
184
184
public static readonly string DurationFollowedUnit = $@ "^\s*{ SuffixAndRegex } ?(\s+|-)?{ DurationUnitRegex } ";
185
185
public static readonly string NumberCombinedWithDurationUnit = $@ "\b(?<num>\d+(\.\d*)?)(-)?{ DurationUnitRegex } ";
0 commit comments