Esempio n. 1
0
        /// <summary>
        /// 切分一些特殊字符
        /// </summary>
        /// <returns></returns>
        private bool workSpecialChars()
        {
            /****************************************************
             * 处理以字母(包括希腊字母)数字英文标点开始的字符片段
             * e-mail,
             * addreess
             * mathexpression
             *  and so on
             * *******************************************************/
            if (Regex_Helper.Is_AN(_token.ToString()) || Regex_Helper.Is_Concrete_Number(_token.ToString()) || Regex_Helper.Is_English_Mark(_token.ToString()))
            {
                flexNumberAlpha(_token);
                return(true);
            }

            /*********************************
            * 处理未知字符开始的字符片段
            * 其他语言的文字 (日文,韩文等)
            * *******************************/
            if (!Regex_Helper.Is_ACN(_token.ToString()) && !Regex_Helper.Is_Mark(_token.ToString()))
            {
                flexUnknowChar(_token);
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// 判断类型
        /// reflexier也会使用 ,所以改成公开静态函数
        /// </summary>
        /// <param name="w"></param>
        public static void SetAlphaNumberType(_WordInnfo w)
        {
            var t = StringHelper.Count(w.Name, (x) => Regex_Helper.Is_Concrete_Number(x.ToString()));

            if (t == w.Name.Length)
            {
                w.MaxType = WordType.NumberConcrete;
            }
            else if (t == w.Name.Length - 1)
            {
                if (w.Name.Contains('.'.ToString()))
                {
                    w.MaxType = WordType.NumberConcrete;
                }
                else
                {
                    w.MaxType = WordType.NounAlphaNumberMark;
                }
            }
            else
            {
                w.MaxType = WordType.NounAlphaNumberMark;
            }
        }