public NumberRangeExtractor() : base(NumberExtractor.GetInstance(), OrdinalExtractor.GetInstance()) { var regexes = new Dictionary <Regex, string>() { { // between...and... new Regex(NumbersDefinitions.TwoNumberRangeRegex1, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.TWONUMBETWEEN }, { // more than ... less than ... new Regex(NumbersDefinitions.TwoNumberRangeRegex2, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.TWONUM }, { // less than ... more than ... new Regex(NumbersDefinitions.TwoNumberRangeRegex3, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.TWONUM }, { // from ... to/~/- ... new Regex(NumbersDefinitions.TwoNumberRangeRegex4, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.TWONUMTILL }, { // more/greater/higher than ... new Regex(NumbersDefinitions.OneNumberRangeMoreRegex1, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.MORE }, { // 30 and greater/higher new Regex(NumbersDefinitions.OneNumberRangeMoreRegex2, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.MORE }, { // less/smaller/lower than ... new Regex(NumbersDefinitions.OneNumberRangeLessRegex1, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.LESS }, { // 30 and less/smaller/lower new Regex(NumbersDefinitions.OneNumberRangeLessRegex2, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.LESS }, { // equal to ... new Regex(NumbersDefinitions.OneNumberRangeEqualRegex, RegexOptions.IgnoreCase | RegexOptions.Singleline) , NumberRangeConstants.EQUAL } }; Regexes = regexes.ToImmutableDictionary(); }
public NumberRangeExtractor(INumberOptionsConfiguration config) : base( NumberExtractor.GetInstance(new BaseNumberOptionsConfiguration(config.Culture, config.Options)), OrdinalExtractor.GetInstance(new BaseNumberOptionsConfiguration(config.Culture, config.Options)), new BaseNumberParser(new EnglishNumberParserConfiguration(config)), config) { var regexes = new Dictionary <Regex, string>() { { // between...and... new Regex(NumbersDefinitions.TwoNumberRangeRegex1, RegexFlags), NumberRangeConstants.TWONUMBETWEEN }, { // more than ... less than ... new Regex(NumbersDefinitions.TwoNumberRangeRegex2, RegexFlags), NumberRangeConstants.TWONUM }, { // less than ... more than ... new Regex(NumbersDefinitions.TwoNumberRangeRegex3, RegexFlags), NumberRangeConstants.TWONUM }, { // from ... to/~/- ... new Regex(NumbersDefinitions.TwoNumberRangeRegex4, RegexFlags), NumberRangeConstants.TWONUMTILL }, { // more/greater/higher than ... new Regex(NumbersDefinitions.OneNumberRangeMoreRegex1, RegexFlags), NumberRangeConstants.MORE }, { // 30 and/or greater/higher new Regex(NumbersDefinitions.OneNumberRangeMoreRegex2, RegexFlags), NumberRangeConstants.MORE }, { // less/smaller/lower than ... new Regex(NumbersDefinitions.OneNumberRangeLessRegex1, RegexFlags), NumberRangeConstants.LESS }, { // 30 and/or less/smaller/lower new Regex(NumbersDefinitions.OneNumberRangeLessRegex2, RegexFlags), NumberRangeConstants.LESS }, { // equal to ... new Regex(NumbersDefinitions.OneNumberRangeEqualRegex, RegexFlags), NumberRangeConstants.EQUAL }, { // equal to 30 or more than, larger than 30 or equal to ... new Regex(NumbersDefinitions.OneNumberRangeMoreSeparateRegex, RegexFlags), NumberRangeConstants.MORE }, { // equal to 30 or less, smaller than 30 or equal ... new Regex(NumbersDefinitions.OneNumberRangeLessSeparateRegex, RegexFlags), NumberRangeConstants.LESS }, }; Regexes = regexes.ToImmutableDictionary(); AmbiguousFractionConnectorsRegex = new Regex(NumbersDefinitions.AmbiguousFractionConnectorsRegex, RegexFlags); }