字符串验证c#

时间:2016-02-01 17:07:55

标签: c# regex

我有一个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"等

1 个答案:

答案 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个字符不能是字母)。