protected void ReadRecords() { if (string.IsNullOrEmpty(SourceFile) || !File.Exists(SourceFile)) { LogTo.Fatal("Did not find list file {0}", SourceFile); throw new Exception("Did not find list file " + SourceFile); } foreach (var lines in RegularList.Select(GetRegExpMatches)) { PopulateRecords(lines); } }
/// <summary> /// 判断当前str是否符合规则,判断用户输入是否准确 /// </summary> /// <param name="str">string,判断的字符串</param> /// <param name="regualrList">RegularList,已知规则</param> /// <returns>bool,判断结果</returns> public static bool isFix(string str, RegularList regualrList) { Regex rg = new Regex(@"^-?\d+$"); switch (regualrList) { case RegularList.十六进制字符: rg = new Regex(@"^[A-Fa-f0-9]+$"); break; case RegularList.整数: rg = new Regex(@"^-?\d+$"); break; case RegularList.正整数: rg = new Regex(@"^[0-9]*[1-9][0-9]*$"); break; case RegularList.负整数: rg = new Regex(@"^-[0-9]*[1-9][0-9]*$"); break; case RegularList.非正整数: rg = new Regex(@"^((-\d+)|(0+))$"); break; case RegularList.非负整数: rg = new Regex(@"^\d+$"); break; case RegularList.输入中的浮点数: rg = new Regex(@"^(-?\d+)((\.\d+)|(\.))?$"); break; case RegularList.浮点数: rg = new Regex(@"^(-?\d+)(\.\d+)?$"); break; case RegularList.正浮点数: rg = new Regex(@"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"); break; case RegularList.负浮点数: rg = new Regex(@"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"); break; case RegularList.非正浮点数: rg = new Regex(@"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"); break; case RegularList.非负浮点数: rg = new Regex(@"^\d+(\.\d+)?$"); break; case RegularList.英文字母: rg = new Regex(@"^[A-Za-z]+$"); break; case RegularList.大写英文字母: rg = new Regex(@"^[A-Z]+$"); break; case RegularList.小写英文字母: rg = new Regex(@"^[a-z]+$"); break; case RegularList.数字和英文字母: rg = new Regex(@"^[A-Za-z0-9]+$"); break; case RegularList.IP地址: rg = new Regex(@"^((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))$"); break; case RegularList.邮箱: rg = new Regex(@"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"); break; } return(rg.IsMatch(str)); }