C# 字符串数字模式的正则表达式匹配

C# 字符串数字模式的正则表达式匹配,c#,regex,C#,Regex,我有两种不同的字符串数字模式,需要在用户输入期间进行验证 它们看起来像这样 // Always a dash, always a comma var variant1 = "0-5,99"; // Always a dash, never a comma, always integers var variant2 = "10-20"; 我曾想过这样做,但显然不起作用:/ var reg1 = @"(\w{2})-(\w{2})"; var match = Regex.IsMatch(vari

我有两种不同的字符串数字模式,需要在用户输入期间进行验证

它们看起来像这样

// Always a dash, always a comma
var variant1 = "0-5,99";

// Always a dash, never a comma, always integers
var variant2 = "10-20";
我曾想过这样做,但显然不起作用:/

var reg1 = @"(\w{2})-(\w{2})";
var match = Regex.IsMatch(variant2 , reg1);
谢谢

“[0-9]+-[0-9]+”至少列出一个数字,后面是破折号,至少还有一个数字。(如果不起作用,可在中间“-”处转义)

这将查找两个组中的一个,或匹配“数字、破折号数字或逗号数字”

或匹配的“数字或短划线数字”


它使用
^
$
强制进行“整个字符串”匹配。

这仍然会匹配0-5.99为真!
var reg1 = @"^(?:\d+\-\d+,\d+)|(?:\d+\-\d+)$";
^\d+\-\d+,\d+$
^\d+\-\d+$