Beispiel #1
0
        public NumberRangeExtractor(INumberOptionsConfiguration config)
            : base(new NumberExtractor(new BaseNumberOptionsConfiguration(config)),
                   OrdinalExtractor.GetInstance(new BaseNumberOptionsConfiguration(config.Culture, config.Options)),
                   new BaseCJKNumberParser(new KoreanNumberParserConfiguration(config)),
                   config)
        {
            var regexes = new Dictionary <Regex, string>
            {
                {
                    // ...과...사이
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex1, RegexFlags),
                    NumberRangeConstants.TWONUMBETWEEN
                },
                {
                    // 이상...이하...

                    new Regex(NumbersDefinitions.TwoNumberRangeRegex2, RegexFlags),
                    NumberRangeConstants.TWONUM
                },
                {
                    // 이하...이상...
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex3, RegexFlags),
                    NumberRangeConstants.TWONUM
                },
                {
                    // 이십보다 크고 삼십오보다 작다
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex7, RegexFlags),
                    NumberRangeConstants.TWONUM
                },
                {
                    // ...에서..., 20~30
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex4, RegexFlags),
                    NumberRangeConstants.TWONUMTILL
                },
                {
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex5, RegexFlags),
                    NumberRangeConstants.TWONUMTILL
                },
                {
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex6, RegexFlags),
                    NumberRangeConstants.TWONUMTILL
                },
                {
                    // ...이상|초과|많|높|크|더많|더높|더크|>
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegex1, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    // ...이상|초과|많|높|크|더많|더높|더크|>
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegex2, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    // >|≥...
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegex3, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegex5, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    // >|≥...
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegexFraction, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    new Regex(NumbersDefinitions.OneNumberRangeLessRegex1, RegexFlags),
                    NumberRangeConstants.LESS
                },
                {
                    new Regex(NumbersDefinitions.TwoNumberRangeRegex, RegexFlags),
                    NumberRangeConstants.TWONUMCLOSED
                },
                {
                    // 까지최소|<|≤...
                    new Regex(NumbersDefinitions.OneNumberRangeLessRegex3, RegexFlags),
                    NumberRangeConstants.LESS
                },
                {
                    new Regex(NumbersDefinitions.OneNumberRangeEqualRegex, RegexFlags),
                    NumberRangeConstants.EQUAL
                },
                {
                    // >|≥...
                    new Regex(NumbersDefinitions.OneNumberRangeEqualRegex2, RegexFlags),
                    NumberRangeConstants.EQUAL
                },
                {
                    new Regex(NumbersDefinitions.OneNumberRangeMoreRegex4, RegexFlags),
                    NumberRangeConstants.MORE
                },
                {
                    // 700에 달하는
                    new Regex(NumbersDefinitions.OneNumberRangeLessRegex4, RegexFlags),
                    NumberRangeConstants.LESS
                },
            };

            Regexes = regexes.ToImmutableDictionary();
        }