public NumberRangeExtractor(INumberOptionsConfiguration config) : base( NumberExtractor.GetInstance(new BaseNumberOptionsConfiguration(config.Culture, config.Options)), OrdinalExtractor.GetInstance(new BaseNumberOptionsConfiguration(config.Culture, config.Options)), new BaseNumberParser(new FrenchNumberParserConfiguration(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.OneNumberRangeMoreRegex1LB, RegexFlags), NumberRangeConstants.MORE }, { // 30 and/or greater/higher new Regex(NumbersDefinitions.OneNumberRangeMoreRegex2, RegexFlags), NumberRangeConstants.MORE }, { // less/smaller/lower than ... new Regex(NumbersDefinitions.OneNumberRangeLessRegex1LB, 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); }