FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

[SDK][Recognizers-Text] Update temporal folder with latest changes (#… · microsoft/botbuilder-java@3f29b92 · GitHub

This repository was archived by the owner on Dec 4, 2023. It is now read-only.
/ botbuilder-java Public archive

Commit 3f29b92

Browse files
authored andcommitted
[SDK][Recognizers-Text] Update temporal folder with latest changes (#1164)
* Update Datetime extractors * Update Datetime resources * Update Number resources * Update NumberWithUnit resources * Update NumberWithUnit extractors * Update NumberWithUnit parsers
1 parent 66365c7 commit 3f29b92

21 files changed

Lines changed: 953 additions & 164 deletions

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/extractors/BaseDateExtractor.java‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,25 @@ private boolean validateMatch(Match match, String text) {
108108
isValidMatch = startsWithBasicDate(subText);
109109
}
110110
}
111+
112+
// Expressions with mixed separators are not considered valid dates e.g. "30/4.85" (unless one is a comma "30/4, 2016")
113+
MatchGroup dayGroup = match.getGroup("day");
114+
MatchGroup monthGroup = match.getGroup("month");
115+
if (!StringUtility.isNullOrEmpty(dayGroup.value) && !StringUtility.isNullOrEmpty(monthGroup.value)) {
116+
String noDateText = match.value.replace(yearGroup.value, "")
117+
.replace(monthGroup.value, "").replace(dayGroup.value, "");
118+
String[] separators = {"/", "\\", "-", "."};
119+
int separatorCount = 0;
120+
for (String separator : separators) {
121+
if (noDateText.contains(separator)) {
122+
separatorCount++;
123+
}
124+
if (separatorCount > 1) {
125+
isValidMatch = false;
126+
break;
127+
}
128+
}
129+
}
111130
}
112131

113132
return isValidMatch;

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/extractors/BaseDateTimeExtractor.java‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,27 @@ public List<Token> timeOfTodayAfter(String input, LocalDateTime reference) {
128128

129129
Match[] matches = RegExpUtility.getMatches(this.config.getSimpleTimeOfTodayAfterRegex(), input);
130130
for (Match match : matches) {
131+
// @TODO Remove when lookbehinds are handled correctly
132+
if (isDecimal(match, input)) {
133+
continue;
134+
}
135+
131136
ret.add(new Token(match.index, match.index + match.length));
132137
}
133138

134139
return ret;
135140
}
141+
142+
// Check if the match is part of a decimal number (e.g. 123.24)
143+
private boolean isDecimal(Match match, String text) {
144+
boolean isDecimal = false;
145+
if (match.index > 1 && (text.charAt(match.index - 1) == ',' ||
146+
text.charAt(match.index - 1) == '.') && Character.isDigit(text.charAt(match.index - 2)) && Character.isDigit(match.value.charAt(0))) {
147+
isDecimal = true;
148+
}
149+
150+
return isDecimal;
151+
}
136152

137153
public List<Token> timeOfTodayBefore(String input, LocalDateTime reference) {
138154
List<Token> ret = new ArrayList<>();

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/extractors/BaseTimeExtractor.java‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ public final List<Token> basicRegexMatch(String text) {
8888

8989
Match[] matches = RegExpUtility.getMatches(regex, text);
9090
for (Match match : matches) {
91+
92+
// @TODO Remove when lookbehinds are handled correctly
93+
if (isDecimal(match, text)) {
94+
continue;
95+
}
9196

9297
// @TODO Workaround to avoid incorrect partial-only matches. Remove after time regex reviews across languages.
9398
String lth = match.getGroup("lth").value;
@@ -102,6 +107,17 @@ public final List<Token> basicRegexMatch(String text) {
102107

103108
return ret;
104109
}
110+
111+
// Check if the match is part of a decimal number (e.g. 123.24)
112+
private boolean isDecimal(Match match, String text) {
113+
boolean isDecimal = false;
114+
if (match.index > 1 && (text.charAt(match.index - 1) == ',' ||
115+
text.charAt(match.index - 1) == '.') && Character.isDigit(text.charAt(match.index - 2)) && Character.isDigit(match.value.charAt(0))) {
116+
isDecimal = true;
117+
}
118+
119+
return isDecimal;
120+
}
105121

106122
private List<Token> atRegexMatch(String text) {
107123
List<Token> ret = new ArrayList<>();

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/resources/BaseDateTime.java‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
public class BaseDateTime {
1919

20-
public static final String HourRegex = "(?<hour>2[0-4]|[0-1]?\\d)(h)?";
20+
public static final String HourRegex = "(?<!\\d[,.])(?<hour>2[0-4]|[0-1]?\\d)(h)?";
2121

2222
public static final String TwoDigitHourRegex = "(?<hour>[0-1]\\d|2[0-4])(h)?";
2323

@@ -36,6 +36,8 @@ public class BaseDateTime {
3636
public static final String IllegalYearRegex = "([-])({FourDigitYearRegex})([-])"
3737
.replace("{FourDigitYearRegex}", FourDigitYearRegex);
3838

39+
public static final String CheckDecimalRegex = "(?![,.]\\d)";
40+
3941
public static final String RangeConnectorSymbolRegex = "(--|-|—|——|~|–)";
4042

4143
public static final String BaseAmDescRegex = "(am\\b|a\\s*\\.\\s*m\\s*\\.|a[\\.]?\\s*m\\b)";

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/resources/EnglishDateTime.java‎

Lines changed: 52 additions & 39 deletions
Large diffs are not rendered by default.

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/resources/EnglishTimeZone.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public class EnglishTimeZone {
8888
.put("esat", -180)
8989
.put("est", -300)
9090
.put("estm", -300)
91-
.put("et", -240)
91+
.put("et", -300)
9292
.put("fjst", 780)
9393
.put("fjt", 720)
9494
.put("get", 240)

‎libraries/bot-dialogs/src/main/java/com/microsoft/recognizers/text/datetime/resources/FrenchDateTime.java‎

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ public class FrenchDateTime {
2727

2828
public static final String RangeConnectorRegex = "(?<and>de la|au|[aà]|et(\\s*la)?|--|-|—|——)";
2929

30-
public static final String RelativeRegex = "(?<order>prochaine?|de|du|ce(tte)?|l[ae]|derni[eè]re|pr[eé]c[eé]dente|au\\s+cours+(de|du\\s*))";
30+
public static final 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*))";
3131

32-
public static final String StrictRelativeRegex = "(?<order>prochaine?|derni[eè]re|pr[eé]c[eé]dente|au\\s+cours+(de|du\\s*))";
32+
public static final String StrictRelativeRegex = "(?<order>prochaine?|derni[eè]re|hier|pr[eé]c[eé]dente|au\\s+cours+(de|du\\s*))";
3333

3434
public static final String NextSuffixRegex = "(?<order>prochaines?|prochain|suivante)\\b";
3535

@@ -39,9 +39,9 @@ public class FrenchDateTime {
3939

4040
public static final String RangePrefixRegex = "(du|depuis|des?|entre)";
4141

42-
public static final String DayRegex = "(?<day>01|02|03|04|05|06|07|08|09|10|11e?|12e?|13e?|14e?|15e?|16e?|17e?|18e?|19e?|1er|1|21e?|20e?|22e?|23e?|24e?|25e?|26e?|27e?|28e?|29e?|2e?|30e?|31e?|3e?|4e?|5e?|6e?|7e?|8e?|9e?)(?=\\b|t)";
42+
public static final String DayRegex = "(?<day>(?:3[0-1]|[1-2]\\d|0?[1-9])(e(r)?)?)(?=\\b|t)";
4343

44-
public static final String MonthNumRegex = "(?<month>01|02|03|04|05|06|07|08|09|10|11|12|1|2|3|4|5|6|7|8|9)\\b";
44+
public static final String MonthNumRegex = "(?<month>1[0-2]|(0)?[1-9])\\b";
4545

4646
public static final String SpecialDescRegex = "(p\\b)";
4747

@@ -60,7 +60,7 @@ public class FrenchDateTime {
6060
.replace("{AmPmDescRegex}", AmPmDescRegex)
6161
.replace("{SpecialDescRegex}", SpecialDescRegex);
6262

63-
public static final String TwoDigitYearRegex = "\\b(?<![$])(?<year>([0-24-9]\\d))(?!(\\s*((\\:\\d)|{AmDescRegex}|{PmDescRegex}|\\.\\d)))\\b"
63+
public static final String TwoDigitYearRegex = "\\b(?<![$])(?<year>([0-9]\\d))(?!(\\s*((\\:\\d)|{AmDescRegex}|{PmDescRegex}|\\.\\d)))\\b"
6464
.replace("{AmDescRegex}", AmDescRegex)
6565
.replace("{PmDescRegex}", PmDescRegex);
6666

@@ -212,23 +212,25 @@ public class FrenchDateTime {
212212
.replace("{YearRegex}", YearRegex)
213213
.replace("{TwoDigitYearRegex}", TwoDigitYearRegex);
214214

215-
public static final String DateExtractor1 = "\\b({WeekDayRegex}(\\s+|\\s*,\\s*))?{MonthRegex}\\s*[/\\\\\\.\\-]?\\s*{DayRegex}\\b"
215+
public static final String DateExtractor1 = "\\b({WeekDayRegex}(\\s+|\\s*,\\s*))?{MonthRegex}\\s*[/\\\\\\.\\-]?\\s*{DayRegex}(\\s*[/\\\\\\.\\-]?\\s*{BaseDateTime.FourDigitYearRegex})?\\b"
216216
.replace("{WeekDayRegex}", WeekDayRegex)
217217
.replace("{MonthRegex}", MonthRegex)
218-
.replace("{DayRegex}", DayRegex);
218+
.replace("{DayRegex}", DayRegex)
219+
.replace("{BaseDateTime.FourDigitYearRegex}", BaseDateTime.FourDigitYearRegex);
219220

220221
public static final String DateExtractor2 = "\\b({WeekDayRegex}(\\s+|\\s*,\\s*))?{DayRegex}(\\s+|\\s*,\\s*|\\s+){MonthRegex}\\s*[\\.\\-]?\\s*{DateYearRegex}\\b"
221222
.replace("{WeekDayRegex}", WeekDayRegex)
222223
.replace("{MonthRegex}", MonthRegex)
223224
.replace("{DayRegex}", DayRegex)
224225
.replace("{DateYearRegex}", DateYearRegex);
225226

226-
public static final String DateExtractor3 = "\\b({WeekDayRegex}(\\s+|\\s*,\\s*))?(?<!\\d\\s)(?<!\\d){DayRegex}(\\s+|\\s*,\\s*|\\s*-\\s*)({MonthRegex}((\\s+|\\s*,\\s*){DateYearRegex}(?!\\s*\\d))?|{MonthNumRegex}(\\s+|\\s*,\\s*){DateYearRegex}(?!\\s*\\d))\\b"
227+
public static final String DateExtractor3 = "\\b({WeekDayRegex}(\\s+|\\s*,\\s*))?((?<!\\d\\s)(?<!\\d){DayRegex}(\\s+|\\s*[.,/-])({MonthRegex}((\\s+|\\s*[.,/-]\\s*){DateYearRegex}(?!\\s*\\d))?|{MonthNumRegex}(\\s+|\\s*[.,/-]\\s*){DateYearRegex}(?!\\s*\\d))|{BaseDateTime.FourDigitYearRegex}\\s*[.,/-]?\\s*{DayRegex}\\s*[.,/-]?\\s*{MonthRegex})\\b"
227228
.replace("{WeekDayRegex}", WeekDayRegex)
228229
.replace("{DayRegex}", DayRegex)
229230
.replace("{MonthRegex}", MonthRegex)
230231
.replace("{MonthNumRegex}", MonthNumRegex)
231-
.replace("{DateYearRegex}", DateYearRegex);
232+
.replace("{DateYearRegex}", DateYearRegex)
233+
.replace("{BaseDateTime.FourDigitYearRegex}", BaseDateTime.FourDigitYearRegex);
232234

233235
public static final String DateExtractor4 = "\\b{MonthNumRegex}\\s*[/\\\\\\-]\\s*{DayRegex}\\s*[/\\\\\\-]\\s*{DateYearRegex}(?!\\s*[/\\\\\\-\\.]\\s*\\d+)"
234236
.replace("{MonthNumRegex}", MonthNumRegex)
@@ -241,28 +243,34 @@ public class FrenchDateTime {
241243
.replace("{MonthNumRegex}", MonthNumRegex)
242244
.replace("{DateYearRegex}", DateYearRegex);
243245

244-
public static final String DateExtractor6 = "(?<=\\b(le|sur(\\sl[ae])?)\\s+){MonthNumRegex}[\\-\\.\\/]{DayRegex}\\b"
246+
public static final String DateExtractor6 = "(?<=\\b(le|sur(\\sl[ae])?)\\s+){MonthNumRegex}[\\-\\.\\/]{DayRegex}{BaseDateTime.CheckDecimalRegex}\\b"
245247
.replace("{MonthNumRegex}", MonthNumRegex)
246-
.replace("{DayRegex}", DayRegex);
248+
.replace("{DayRegex}", DayRegex)
249+
.replace("{BaseDateTime.CheckDecimalRegex}", BaseDateTime.CheckDecimalRegex);
247250

248-
public static final String DateExtractor7 = "\\b{DayRegex}\\s*/\\s*{MonthNumRegex}((\\s+|\\s*,\\s*){DateYearRegex})?\\b"
251+
public static final String DateExtractor7 = "\\b{DayRegex}\\s*/\\s*{MonthNumRegex}((\\s+|\\s*,\\s*){DateYearRegex})?{BaseDateTime.CheckDecimalRegex}\\b"
249252
.replace("{DayRegex}", DayRegex)
250253
.replace("{MonthNumRegex}", MonthNumRegex)
251-
.replace("{DateYearRegex}", DateYearRegex);
254+
.replace("{DateYearRegex}", DateYearRegex)
255+
.replace("{BaseDateTime.CheckDecimalRegex}", BaseDateTime.CheckDecimalRegex);
252256

253-
public static final String DateExtractor8 = "(?<=\\b(le)\\s+){DayRegex}[\\\\\\-]{MonthNumRegex}\\b"
257+
public static final String DateExtractor8 = "(?<=\\b(le)\\s+){DayRegex}[\\\\\\-]{MonthNumRegex}{BaseDateTime.CheckDecimalRegex}\\b"
254258
.replace("{DayRegex}", DayRegex)
255-
.replace("{MonthNumRegex}", MonthNumRegex);
259+
.replace("{MonthNumRegex}", MonthNumRegex)
260+
.replace("{BaseDateTime.CheckDecimalRegex}", BaseDateTime.CheckDecimalRegex);
256261

257-
public static final String DateExtractor9 = "\\b{DayRegex}\\s*/\\s*{MonthNumRegex}((\\s+|\\s*,\\s*){DateYearRegex})?\\b"
262+
public static final String DateExtractor9 = "\\b{DayRegex}\\s*/\\s*{MonthNumRegex}((\\s+|\\s*,\\s*){DateYearRegex})?{BaseDateTime.CheckDecimalRegex}\\b"
258263
.replace("{DayRegex}", DayRegex)
259264
.replace("{MonthNumRegex}", MonthNumRegex)
260-
.replace("{DateYearRegex}", DateYearRegex);
265+
.replace("{DateYearRegex}", DateYearRegex)
266+
.replace("{BaseDateTime.CheckDecimalRegex}", BaseDateTime.CheckDecimalRegex);
261267

262-
public static final String DateExtractorA = "\\b{DateYearRegex}\\s*[/\\\\\\-\\.]\\s*{MonthNumRegex}\\s*[/\\\\\\-\\.]\\s*{DayRegex}(?!\\s*[/\\\\\\-\\.]\\s*\\d+)"
268+
public static final String DateExtractorA = "\\b({DateYearRegex}\\s*[/\\\\\\-\\.]\\s*({MonthNumRegex}|{MonthRegex})\\s*[/\\\\\\-\\.]\\s*{DayRegex}|{MonthRegex}\\s*[/\\\\\\-\\.]\\s*{BaseDateTime.FourDigitYearRegex}\\s*[/\\\\\\-\\.]\\s*{DayRegex}|{DayRegex}\\s*[/\\\\\\-\\.]\\s*{BaseDateTime.FourDigitYearRegex}\\s*[/\\\\\\-\\.]\\s*{MonthRegex})(?!\\s*[/\\\\\\-\\.:]\\s*\\d+)"
263269
.replace("{DateYearRegex}", DateYearRegex)
264270
.replace("{MonthNumRegex}", MonthNumRegex)
265-
.replace("{DayRegex}", DayRegex);
271+
.replace("{MonthRegex}", MonthRegex)
272+
.replace("{DayRegex}", DayRegex)
273+
.replace("{BaseDateTime.FourDigitYearRegex}", BaseDateTime.FourDigitYearRegex);
266274

267275
public static final String OfMonth = "^\\s*de\\s*{MonthRegex}"
268276
.replace("{MonthRegex}", MonthRegex);
@@ -305,7 +313,7 @@ public class FrenchDateTime {
305313
.replace("{PmRegex}", PmRegex)
306314
.replace("{OclockRegex}", OclockRegex);
307315

308-
public static final String BasicTime = "(?<basictime>{WrittenTimeRegex}|{HourNumRegex}|{BaseDateTime.HourRegex}:{BaseDateTime.MinuteRegex}(:{BaseDateTime.SecondRegex})?|{BaseDateTime.HourRegex})"
316+
public static final String BasicTime = "(?<basictime>{WrittenTimeRegex}|{HourNumRegex}|{BaseDateTime.HourRegex}(:|\\s*h\\s*){BaseDateTime.MinuteRegex}(:{BaseDateTime.SecondRegex})?|{BaseDateTime.HourRegex})"
309317
.replace("{WrittenTimeRegex}", WrittenTimeRegex)
310318
.replace("{HourNumRegex}", HourNumRegex)
311319
.replace("{BaseDateTime.HourRegex}", BaseDateTime.HourRegex)
@@ -348,7 +356,7 @@ public class FrenchDateTime {
348356

349357
public static final String RestrictedTimeUnitRegex = "(?<unit>huere|minute)\\b";
350358

351-
public static final String ConnectNumRegex = "{BaseDateTime.HourRegex}(?<min>00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59)\\s*{DescRegex}"
359+
public static final String ConnectNumRegex = "{BaseDateTime.HourRegex}(?<min>[0-5][0-9])\\s*{DescRegex}"
352360
.replace("{BaseDateTime.HourRegex}", BaseDateTime.HourRegex)
353361
.replace("{DescRegex}", DescRegex);
354362

@@ -446,7 +454,7 @@ public class FrenchDateTime {
446454

447455
public static final String TimeOfDayRegex = "\\b(?<timeOfDay>((((dans\\s+(l[ea])?\\s+)?((?<early>d[eé]but(\\s+|-)|t[oô]t(\\s+|-)(l[ea]\\s*)?)|(?<late>fin\\s*|fin de(\\s+(la)?)|tard\\s*))?(matin([ée]e)?|((d|l)?'?)apr[eè]s[-|\\s*]midi|nuit|soir([eé]e)?)))|(((\\s+(l[ea])?\\s+)?)jour(n[eé]e)?))s?)\\b";
448456

449-
public static final String SpecificTimeOfDayRegex = "\\b(({RelativeRegex}\\s+{TimeOfDayRegex})|({TimeOfDayRegex}\\s*({NextSuffixRegex}))\\b|\\bsoir|\\bdu soir)s?\\b"
457+
public static final String SpecificTimeOfDayRegex = "\\b(({RelativeRegex}\\s+{TimeOfDayRegex})|({TimeOfDayRegex}\\s*({NextSuffixRegex}))\\b|\\b(du )?soir)s?\\b"
450458
.replace("{TimeOfDayRegex}", TimeOfDayRegex)
451459
.replace("{RelativeRegex}", RelativeRegex)
452460
.replace("{NextSuffixRegex}", NextSuffixRegex);
@@ -470,15 +478,15 @@ public class FrenchDateTime {
470478
public static final String TimeOfTodayAfterRegex = "^\\s*(,\\s*)?(en|dans|du\\s+)?{DateTimeSpecificTimeOfDayRegex}"
471479
.replace("{DateTimeSpecificTimeOfDayRegex}", DateTimeSpecificTimeOfDayRegex);
472480

473-
public static final String TimeOfTodayBeforeRegex = "{DateTimeSpecificTimeOfDayRegex}(\\s*,)?(\\s+([àa]|pour))?\\s*$"
481+
public static final String TimeOfTodayBeforeRegex = "{DateTimeSpecificTimeOfDayRegex}(\\s*,)?(\\s+([àa]|vers|pour))?\\s*$"
474482
.replace("{DateTimeSpecificTimeOfDayRegex}", DateTimeSpecificTimeOfDayRegex);
475483

476484
public static final String SimpleTimeOfTodayAfterRegex = "({HourNumRegex}|{BaseDateTime.HourRegex})\\s*(,\\s*)?(en|[àa]\\s+)?{DateTimeSpecificTimeOfDayRegex}"
477485
.replace("{HourNumRegex}", HourNumRegex)
478486
.replace("{BaseDateTime.HourRegex}", BaseDateTime.HourRegex)
479487
.replace("{DateTimeSpecificTimeOfDayRegex}", DateTimeSpecificTimeOfDayRegex);
480488

481-
public static final String SimpleTimeOfTodayBeforeRegex = "{DateTimeSpecificTimeOfDayRegex}(\\s*,)?(\\s+([àa]|vers))?\\s*({HourNumRegex}|{BaseDateTime.HourRegex})"
489+
public static final String SimpleTimeOfTodayBeforeRegex = "{DateTimeSpecificTimeOfDayRegex}(\\s*,)?(\\s+([àa]|vers|pour))?\\s*({HourNumRegex}|{BaseDateTime.HourRegex})"
482490
.replace("{DateTimeSpecificTimeOfDayRegex}", DateTimeSpecificTimeOfDayRegex)
483491
.replace("{HourNumRegex}", HourNumRegex)
484492
.replace("{BaseDateTime.HourRegex}", BaseDateTime.HourRegex);
@@ -581,7 +589,7 @@ public class FrenchDateTime {
581589

582590
public static final String SinceRegex = "\\b(depuis)\\b";
583591

584-
public static final String AroundRegex = "^[.]";
592+
public static final String AroundRegex = "\\b(vers)\\b";
585593

586594
public static final String AgoPrefixRegex = "\\b(y a)\\b";
587595

@@ -640,7 +648,7 @@ public class FrenchDateTime {
640648
public static final String RelativeDayRegex = "\\b(((la\\s+)?{RelativeRegex}\\s+journ[ée]e))\\b"
641649
.replace("{RelativeRegex}", RelativeRegex);
642650

643-
public static final String ConnectorRegex = "^(,|pour|t|vers)$";
651+
public static final String ConnectorRegex = "^(,|pour|t|vers|le)$";
644652

645653
public static final String ConnectorAndRegex = "\\b(et\\s*(le|las?)?)\\b.+";
646654

@@ -1188,6 +1196,7 @@ public class FrenchDateTime {
11881196
public static final ImmutableMap<String, String> AmbiguityFiltersDict = ImmutableMap.<String, String>builder()
11891197
.put("^([eé]t[eé])$", "(?<!((l\\s*['`]\\s*)|(cet(te)?|en)\\s+))[eé]t[eé]\\b")
11901198
.put("^(mer)$", "(?<!((le|ce)\\s+))mer\\b")
1199+
.put("^(avr|ao[uû]t|d[eé]c|f[eé]vr?|janv?|jui?[ln]|mars?|mai|nov|oct|sept?)$", "([$%£&!?@#])(avr|ao[uû]t|d[eé]c|f[eé]vr?|janv?|jui?[ln]|mars?|mai|nov|oct|sept?)|(avr|ao[uû]t|d[eé]c|f[eé]vr?|janv?|jui?[ln]|mars?|mai|nov|oct|sept?)([$%£&@#])")
11911200
.build();
11921201

11931202
public static final ImmutableMap<String, String> AmbiguityTimeFiltersDict = ImmutableMap.<String, String>builder()

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL