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

Regular expression for selection of a range in .net

我需要验证 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-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;
}

它会return指定输入的以下值:

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

我强烈建议您阅读来自 Microsoft 的 article。 它告诉您有关 C# 中正则表达式的所有信息。