public static StateType GetNextState(char c) { if (ALL_NUMs.Contains(c)) { return(StateType.num); } if ("∶::比".Contains(c)) { return(StateType.colon); } if ("//".Contains(c)) { return(StateType.frac); } if ("±+—-+".Contains(c)) { return(StateType.signed); } if ("..".Contains(c)) { return(StateType.dec); } if ('·' == c) { return(StateType.cdot); } if ("%%‰".Contains(c)) { return(StateType.percent); } return(StateType.unknown); }
/// <summary> /// 是否是年份(不含月日),注意input字符串之后的字符必须为'年'才有意义 /// </summary> /// <param name="input"></param> /// <returns></returns> public static bool IsYear(string input) { if (string.IsNullOrWhiteSpace(input)) { return(false); } input = input.Trim(); //if (input.StartsWith("公元")) // 这里的input 是经过分词后的单词,所以不需要考虑“公元前”,“公元”等前缀 //{ // if (input.Length > 2 && input[2] == '前') // input = input.Substring(3); // else // input = input.Substring(2); // if (input.Length == 0) return false; //} if (input.Length <= 4 && input.All(c => ALL_NUMs.Contains(c))) { return(true); } if (input.Length == 2 && TIANGAN.Contains(input[0]) && DIZHI.Contains(input[1])) { return(true); } return(false); }