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

时间:2014-02-11 15:38:39

标签: 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(variant2 , reg1);

由于

2 个答案:

答案 0 :(得分:3)

var reg1 = @"^(?:\d+\-\d+,\d+)|(?:\d+\-\d+)$";

这会查找两个组中的一个,或者匹配“数字短划线数字(s)逗号数字”

^\d+\-\d+,\d+$

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

^\d+\-\d+$

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

答案 1 :(得分:0)

“[0-9] + - [0-9] +”至少有一个数字,后跟破折号和至少一个数字。 (如果不起作用,可以逃避中间“ - ”)