/// <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); }
/// <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; } }