コード例 #1
0
        internal AddressTruncator(AOTypeDictionary typeDictionary)
        {
            this.typeDictionary = typeDictionary;
            sb = new StringBuilder();

            houseTypesMultiPattern  = typeDictionary.GetRegexMultiPattern((int)ObjectLevel.House);
            roomTypesMultiPattern   = typeDictionary.GetRegexMultiPattern((int)ObjectLevel.Room);
            regionTypesMultiPattern = typeDictionary.GetRegexMultiPattern((int)ObjectLevel.Region, GenderNoun.Fiminine);
            streetTypesMultiPattern = typeDictionary.GetRegexMultiPattern((int)ObjectLevel.Street);

            fullHouseTypesPattern = String.Format(typeAndNumber, houseTypesMultiPattern);
            fullRoomTypesPattern  = String.Format(typeAndNumber, roomTypesMultiPattern);

            regionPattern        = String.Format("^[^ ]+ая +{0}(?=[^а-я]+?)", regionTypesMultiPattern);
            allTypesMultiPattern = String.Format(@"(?<=[^а-я]|^){0}(\.+?|(?=[^а-я]|$))", typeDictionary.GetRegexMultiPattern());
            housePredictPattern  = String.Format("(?<=([^а-я]|^){0}[^а-я]*)[0-9]+([^а-я]*)([а-я](?=[^а-я]|$))*", streetTypesMultiPattern) + litterPattern;


            regexGroup = new RegexGroup(RegexOptions.Compiled | RegexOptions.IgnoreCase);
        }