如何使用正则表达式进行验证

本文关键字:验证 正则表达式 何使用 | 更新日期: 2023-09-27 18:36:08

我的要求是我输入的数字中的前两位数字在 00-32 范围内。如何通过 C# 中的正则表达式进行检查?我想不通!!`

如何使用正则表达式进行验证

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

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

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

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

若要匹配数字范围,请使用[A-B]范围,其中 A 是下限,B 是要匹配的数字的上限(两个边界都包括在内)。

尝试类似

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。

您应该按

以下方式划分区域:

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