@@ -139,9 +139,9 @@ public static class DateTimeDefinitions
139
139
public const string HourNumRegex = @"\b(?<hournum>zero|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve)\b" ;
140
140
public const string MinuteNumRegex = @"(?<minnum>ten|eleven|twelve|thirteen|fifteen|eighteen|(four|six|seven|nine)(teen)?|twenty|thirty|forty|fifty|one|two|three|five|eight)" ;
141
141
public const string DeltaMinuteNumRegex = @"(?<deltaminnum>ten|eleven|twelve|thirteen|fifteen|eighteen|(four|six|seven|nine)(teen)?|twenty|thirty|forty|fifty|one|two|three|five|eight)" ;
142
- public const string PmRegex = @"(?<pm>(((?:at|in|around|on|for)\s+(the\s+)?)?(afternoon|evening|midnight|lunchtime))|((at|in|around|on|for)\s+(the\s+)?night))" ;
143
- public const string PmRegexFull = @"(?<pm>((?:at|in|around|on|for)\s+(the\s+)?)?(afternoon|evening|(mid)?night|lunchtime))" ;
144
- public const string AmRegex = @"(?<am>((?:at|in|around|on|for)\s+(the\s+)?)?(morning))" ;
142
+ public const string PmRegex = @"(?<pm>(((?:at|in|around|circa| on|for)\s+(the\s+)?)?(afternoon|evening|midnight|lunchtime))|((at|in|around|on|for)\s+(the\s+)?night))" ;
143
+ public const string PmRegexFull = @"(?<pm>((?:at|in|around|circa| on|for)\s+(the\s+)?)?(afternoon|evening|(mid)?night|lunchtime))" ;
144
+ public const string AmRegex = @"(?<am>((?:at|in|around|circa| on|for)\s+(the\s+)?)?(morning))" ;
145
145
public const string LunchRegex = @"\blunchtime\b" ;
146
146
public const string NightRegex = @"\b(mid)?night\b" ;
147
147
public const string CommonDatePrefixRegex = @"^[\.]" ;
@@ -156,7 +156,7 @@ public static class DateTimeDefinitions
156
156
public const string MidafternoonRegex = @"(?<midafternoon>mid\s*(-\s*)?afternoon)" ;
157
157
public const string MiddayRegex = @"(?<midday>mid\s*(-\s*)?day|((12\s)?noon))" ;
158
158
public static readonly string MidTimeRegex = $@ "(?<mid>({ MidnightRegex } |{ MidmorningRegex } |{ MidafternoonRegex } |{ MiddayRegex } ))";
159
- public static readonly string AtRegex = $@ "\b(?:(?:(?<=\bat \s+)(?:{ WrittenTimeRegex } |{ HourNumRegex } |{ BaseDateTime . HourRegex } (?!\.\d)(\s*((?<iam>a)|(?<ipm>p)))?|{ MidTimeRegex } ))|{ MidTimeRegex } )\b";
159
+ public static readonly string AtRegex = $@ "\b(?:(?:(?<=\b(at|(at)?\s*around|circa) \s+)(?:{ WrittenTimeRegex } |{ HourNumRegex } |{ BaseDateTime . HourRegex } (?!\.\d)(\s*((?<iam>a)|(?<ipm>p)))?|{ MidTimeRegex } ))|{ MidTimeRegex } )\b";
160
160
public static readonly string IshRegex = $@ "\b({ BaseDateTime . HourRegex } (-|——)?ish|noon(ish)?)\b";
161
161
public const string TimeUnitRegex = @"([^A-Za-z]{1,}|\b)(?<unit>h(ou)?rs?|h|min(ute)?s?|sec(ond)?s?)\b" ;
162
162
public const string RestrictedTimeUnitRegex = @"(?<unit>hour|minute)\b" ;
@@ -198,9 +198,9 @@ public static class DateTimeDefinitions
198
198
public const string DateTimeTimeOfDayRegex = @"\b(?<timeOfDay>morning|(?<pm>afternoon|night|evening))\b" ;
199
199
public static readonly string DateTimeSpecificTimeOfDayRegex = $@ "\b(({ RelativeRegex } \s+{ DateTimeTimeOfDayRegex } )\b|\btoni(ght|te))\b";
200
200
public static readonly string TimeOfTodayAfterRegex = $@ "^\s*(,\s*)?(in\s+)?{ DateTimeSpecificTimeOfDayRegex } ";
201
- public static readonly string TimeOfTodayBeforeRegex = $@ "{ DateTimeSpecificTimeOfDayRegex } (\s*,)?(\s+(at|around|in|on))?\s*$";
201
+ public static readonly string TimeOfTodayBeforeRegex = $@ "{ DateTimeSpecificTimeOfDayRegex } (\s*,)?(\s+(at|around|circa| in|on))?\s*$";
202
202
public static readonly string SimpleTimeOfTodayAfterRegex = $@ "(?<!{ NonTimeContextTokens } \s*)\b({ HourNumRegex } |{ BaseDateTime . HourRegex } )\s*(,\s*)?(in\s+)?{ DateTimeSpecificTimeOfDayRegex } \b";
203
- public static readonly string SimpleTimeOfTodayBeforeRegex = $@ "\b{ DateTimeSpecificTimeOfDayRegex } (\s*,)?(\s+(at|around))?\s*({ HourNumRegex } |{ BaseDateTime . HourRegex } )\b";
203
+ public static readonly string SimpleTimeOfTodayBeforeRegex = $@ "\b{ DateTimeSpecificTimeOfDayRegex } (\s*,)?(\s+(at|around|circa ))?\s*({ HourNumRegex } |{ BaseDateTime . HourRegex } )\b";
204
204
public const string SpecificEndOfRegex = @"(the\s+)?end of(\s+the)?\s*$" ;
205
205
public const string UnspecificEndOfRegex = @"\b(the\s+)?(eod|(end\s+of\s+day))\b" ;
206
206
public const string UnspecificEndOfRangeRegex = @"\b(eoy)\b" ;
@@ -256,12 +256,12 @@ public static class DateTimeDefinitions
256
256
public static readonly string RelativeTimeUnitRegex = $@ "(?:(?:(?:{ NextPrefixRegex } |{ PreviousPrefixRegex } |{ ThisPrefixRegex } )\s+({ TimeUnitRegex } ))|((the|my))\s+({ RestrictedTimeUnitRegex } ))";
257
257
public static readonly string RelativeDurationUnitRegex = $@ "(?:(?:(?<=({ NextPrefixRegex } |{ PreviousPrefixRegex } |{ ThisPrefixRegex } )\s+)({ DurationUnitRegex } ))|((the|my))\s+({ RestrictedTimeUnitRegex } ))";
258
258
public static readonly string ReferenceDatePeriodRegex = $@ "\b{ ReferencePrefixRegex } \s+(?<duration>week|month|year|decade|weekend)\b";
259
- public const string ConnectorRegex = @"^(-|,|for|t|around|@)$" ;
259
+ public const string ConnectorRegex = @"^(-|,|for|t|around|circa| @)$" ;
260
260
public const string FromToRegex = @"(\b(from).+(to|and|or)\b.+)" ;
261
261
public const string SingleAmbiguousMonthRegex = @"^(the\s+)?(may|march)$" ;
262
262
public const string SingleAmbiguousTermsRegex = @"^(the\s+)?(day|week|month|year)$" ;
263
263
public const string UnspecificDatePeriodRegex = @"^(week|month|year)$" ;
264
- public const string PrepositionSuffixRegex = @"\b(on|in|at|around|from|to)$" ;
264
+ public const string PrepositionSuffixRegex = @"\b(on|in|at|around|circa| from|to)$" ;
265
265
public const string FlexibleDayRegex = @"(?<DayOfMonth>([A-Za-z]+\s)?[A-Za-z\d]+)" ;
266
266
public static readonly string ForTheRegex = $@ "\b((((?<=for\s+)the\s+{ FlexibleDayRegex } )|((?<=on\s+)(the\s+)?{ FlexibleDayRegex } (?<=(st|nd|rd|th))))(?<end>\s*(,|\.(?!\d)|!|\?|$)))";
267
267
public static readonly string WeekDayAndDayOfMonthRegex = $@ "\b{ WeekDayRegex } \s+(the\s+{ FlexibleDayRegex } )\b";
0 commit comments