我有一个9个字符的字符串,我试图提供多个检查。我想首先检查前1到7个字符是否是数字,然后说例如前3个字符是数字我如何检查第5个字符的字母范围为G到T.
我正在使用c#并且到目前为止已尝试过这个...
string checkString = "123H56789";
Regex charactorSet = new Regex("[G-T]");
Match matchSetOne = charactorSetOne.Match(checkString, 3);
if (Char.IsNumber(checkString[0]) && Char.IsNumber(checkString[1]) && Char.IsNumber(checkString[2]))
{
if (matchSetOne.Success)
{
Console.WriteLine("3th char is a letter");
}
}
但我不确定这是否是处理验证的最佳方法。
更新: 数字可以是0 - 9,但可以从一个数字连接到七个。像这样" 12345T789"或" 1R3456789"等
答案 0 :(得分:0)
使用LINQ很容易:
检查前1到7个字符是否为数字:
var condition1 = input.Take(7).All(c => Char.IsDigit(c));
检查第5个字符是否为G到T的字母范围
var condition2 = input.ElementAt(4) >= 'G' && input.ElementAt(4) <= 'T';
实际上,两个条件不能同时为真(如果前7个字符是数字,那么第5个字符不能是字母)。