我的要求就是这样 输入数字的前两位数字是00-32。 我如何通过C#中的正则表达式检查这个? 我想不出来!!`
答案 0 :(得分:4)
你真的需要正则表达式吗?
int val;
if (Int32.TryParse("00ABFSSDF".Substring(0, 2), out val))
{
if (val >= 0 && val <= 32)
{
// valid
}
}
答案 1 :(得分:4)
由于这几乎肯定是一个学习练习,这里有一些提示:
|
,都验证前两个字符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