.net中用于选择范围的正则表达式

时间:2019-01-03 17:53:14

标签: c# .net regex c#-4.0

我需要验证0-59之间的范围选择。这是我尝试过的部分有效的方法。

var a = "0-8";
Regex reg = new Regex("[0-5][0-9]");
if(reg.IsMatch(a))
{
 return true;
}

这对于输入“ 12-24”部分起作用,但是对于输入“ 0-8”则失败。我需要修改正则表达式什么?

2 个答案:

答案 0 :(得分:1)

如果您想检测整个字符串并且不允许使用2-ok-1155+56之类的值,请使用^([0-5]?[0-9]|60)-([0-5]?[0-9]|60)$作为正则表达式模式:

var a = "0-8";
Regex reg = new Regex("^([0-5]?[0-9]|60)-([0-5]?[0-9]|60)$");
if(reg.IsMatch(a))
{
    return true;
}

它将为指定的输入返回以下值:

var s1 = "0-59"; // true
var s2 = "59-59"; // true
var s3 = "0-60"; // false
var s4 = "0_59"; // false
var s5 = "60-59"; // false
var s6 = "59-0"; // true
var s7 = "0-0"; // true
var s8 = "0-"; // false
var s9 = "-0"; // false
var s10 = "0-80"; // false

答案 1 :(得分:0)

我强烈建议您从Microsoft阅读此article。 它告诉您有关C#中的正则表达式的所有知识。