如何使用Regex进行验证

时间:2013-10-21 10:10:38

标签: c# regex

我的要求就是这样 输入数字的前两位数字是00-32。 我如何通过C#中的正则表达式检查这个? 我想不出来!!`

5 个答案:

答案 0 :(得分:4)

你真的需要正则表达式吗?

int val;
if (Int32.TryParse("00ABFSSDF".Substring(0, 2), out val))
{
    if (val >= 0 && val <= 32)
    {
        // valid
    }
}

答案 1 :(得分:4)

由于这几乎肯定是一个学习练习,这里有一些提示:

  • 你的rexex将是两个部分的“OR”|,都验证前两个字符
  • 如果第一个字符是数字是0..2,第一个表达式部分将匹配,第二个字符是数字0..9
  • 如果第一个字符为数字3,则第二个表达式部分将匹配,第二个字符为数字0..2

要匹配一系列数字,请使用[A-B]范围,其中A是较低的数字,B是匹配数字的上限(两个边界都包括在内)。< / p>

答案 2 :(得分:1)

尝试类似

的内容
Regex reg = new Regex(@"^([0-2]?[0-9]|3[0-2])$");
Console.WriteLine(reg.IsMatch("00"));
Console.WriteLine(reg.IsMatch("22"));
Console.WriteLine(reg.IsMatch("33"));
Console.WriteLine(reg.IsMatch("42"));

[0-2]?[0-9]匹配从0到29的所有数字,3[0-2]匹配30-32。

这将验证从0到32的数字,并且还允许具有前导零的数字,例如,08。

答案 3 :(得分:1)

您应该将区域划分为:

^[012]\d|3[012]

答案 4 :(得分:0)

if(Regex.IsMatch("123456789","^([0-2][0-9]|3[0-2])"))
    // match