我的要求是我输入的数字中的前两位数字在 00-32 的范围内。我如何通过 C# 中的正则表达式检查这个?我想不通!!`
问问题
80 次
5 回答
4
你真的需要正则表达式吗?
int val;
if (Int32.TryParse("00ABFSSDF".Substring(0, 2), out val))
{
if (val >= 0 && val <= 32)
{
// valid
}
}
于 2013-10-21T10:13:28.983 回答
4
由于这几乎可以肯定是一个学习练习,这里有一些提示:
- 您的 rexex 将是
|
两个部分的“或”,都验证前两个字符 - 如果第一个字符是数字是 0..2,则第一个表达式部分将匹配,第二个字符是数字 0..9
- 如果第一个字符是 digit
3
并且第二个字符是 digit ,则第二个表达式部分将匹配0..2
要匹配数字范围,请使用[A-B]
范围,其中A
是要匹配的数字的下限和B
上限(包括两个边界)。
于 2013-10-21T10:16:40.103 回答
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。
于 2013-10-21T10:20:03.030 回答
1
您应该按如下方式划分区域:
^[012]\d|3[012]
于 2013-10-21T10:22:00.113 回答
0
if(Regex.IsMatch("123456789","^([0-2][0-9]|3[0-2])"))
// match
于 2013-10-21T10:33:17.553 回答