public JapaneseDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new JapaneseDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayWithNumRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, WeekDayAndDayRegex, }; // 2016年12月1日 var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // # 2016年12月 (this is not a Date) // var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015年)?(农历)?十月二十(星期三)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // 12月1日 var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags); // 2015/12/23 var dateRegex10 = new Regex(DateTimeDefinitions.DateRegexList10, RegexFlags); // 2016/12 (this is not a Date) // var dateRegex11 = new Regex(DateTimeDefinitions.DateRegexList11, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; DateRegexList = new List <Regex> { dateRegex1, dateRegex10, /*dateRegex2, */ dateRegex9, dateRegex3, dateRegex4, dateRegex5 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex7, dateRegex6, dateRegex8 /*, dateRegex11*/ } : new[] { dateRegex6, dateRegex7, dateRegex8 /*, dateRegex11*/ }); NormalizeCharMap = DateTimeDefinitions.NormalizeCharMap; }
public KoreanDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new KoreanDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, DurationFromSpecialDayRegex, }; // (음력)? (2016)? 1 월 3 일 (수)? var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // (2015)? (음력)? 10 월 1 일 (수)? var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015)? (음력)? 10 월 20 일 (수)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); var dateRegex9 = new Regex(DateTimeDefinitions.DateRegexList9, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD; DateRegexList = new List <Regex> { dateRegex1, dateRegex2, dateRegex3, dateRegex8, dateRegex9 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } : enableYmd ? new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } : new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 }); NormalizeCharMap = null; }
public ChineseDateExtractorConfiguration(IDateTimeOptionsConfiguration config) : base(config) { var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig)); ImplicitDateList = new List <Regex> { LunarRegex, SpecialDayRegex, ThisRegex, LastRegex, NextRegex, WeekDayRegex, WeekDayOfMonthRegex, SpecialDate, }; // (农历)?(2016年)?一月三日(星期三)? var dateRegex1 = new Regex(DateTimeDefinitions.DateRegexList1, RegexFlags); // (2015年)?(农历)?十月初一(星期三)? var dateRegex2 = new Regex(DateTimeDefinitions.DateRegexList2, RegexFlags); // (2015年)?(农历)?十月二十(星期三)? var dateRegex3 = new Regex(DateTimeDefinitions.DateRegexList3, RegexFlags); // 2015-12-23 - This regex represents the standard format in Chinese dates (YMD) and has precedence over other orderings var dateRegex8 = new Regex(DateTimeDefinitions.DateRegexList8, RegexFlags); // 23/7 var dateRegex5 = new Regex(DateTimeDefinitions.DateRegexList5, RegexFlags); // 7/23 var dateRegex4 = new Regex(DateTimeDefinitions.DateRegexList4, RegexFlags); // 23-3-2017 var dateRegex7 = new Regex(DateTimeDefinitions.DateRegexList7, RegexFlags); // 3-23-2015 var dateRegex6 = new Regex(DateTimeDefinitions.DateRegexList6, RegexFlags); // Regex precedence where the order between D and M varies is controlled by DefaultLanguageFallback var enableDmy = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_DMY; var enableYmd = DateTimeDefinitions.DefaultLanguageFallback == Constants.DefaultLanguageFallback_YMD; DateRegexList = new List <Regex> { dateRegex1, dateRegex2, dateRegex3, dateRegex8 }; DateRegexList = DateRegexList.Concat( enableDmy ? new[] { dateRegex5, dateRegex4, dateRegex7, dateRegex6 } : enableYmd ? new[] { dateRegex4, dateRegex5, dateRegex7, dateRegex6 } : new[] { dateRegex4, dateRegex5, dateRegex6, dateRegex7 }); NormalizeCharMap = null; }
public TestDateTimeRecognizerInitialization() { var defaultConfig = new BaseDateTimeOptionsConfiguration(Culture.English, DateTimeOptions.None, false); var dmyConfig = new BaseDateTimeOptionsConfiguration(Culture.EnglishOthers, DateTimeOptions.None, true); defaultEnglishControlModel = new DateTimeModel( new BaseMergedDateTimeParser(new EnglishMergedParserConfiguration(defaultConfig)), new BaseMergedDateTimeExtractor(new EnglishMergedExtractorConfiguration(defaultConfig))); otherEnglishControlModel = new DateTimeModel( new BaseMergedDateTimeParser(new EnglishMergedParserConfiguration(dmyConfig)), new BaseMergedDateTimeExtractor(new EnglishMergedExtractorConfiguration(dmyConfig))); }
public ChineseDurationParserConfiguration(ICJKCommonDateTimeParserConfiguration config) : base(config) { InternalParser = new NumberWithUnitParser(new DurationParserConfiguration()); var durationConfig = new BaseDateTimeOptionsConfiguration(config.Culture, DateTimeOptions.None); DurationExtractor = new BaseCJKDurationExtractor(new ChineseDurationExtractorConfiguration(durationConfig), false); YearRegex = ChineseDurationExtractorConfiguration.YearRegex; DurationUnitRegex = ChineseDurationExtractorConfiguration.DurationUnitRegex; DurationConnectorRegex = ChineseDurationExtractorConfiguration.DurationConnectorRegex; UnitMap = config.UnitMap; UnitValueMap = config.UnitValueMap; }