数据标注正则表达式

Data annotation regular expression

我需要一个像这样的字符串的正则表达式:

例如。 1234-1234-12345

其中前两个数字必须在 01-18 之间并且整个字符串的长度必须为 15 个字符

示例:0511-xxxx-xxxxx。

我尝试使用 [RegularExpression(@"^[0-9]{1,18}$", ErrorMessage = "Invalid Id.")]

但它不起作用,它甚至给我一个错误,提示缺少“,”。


让它变得更简单,一个 13 个字符长的数字字符串,其中前两位数字必须在 01-18 之间。

例如。 1234567890123

(我更喜欢第一种格式,但这个也行)。


我不知道如何使用正则表达式,所以如果有人可以给我一个 link 到我可以学习的地方,我将非常感激。

而且,最重要的是,如果有更好的方法在不使用正则表达式的情况下解决这个问题,我也会很感激。


看来,我的要求有点不清楚。我想要的是前两位数字 (XXxx-xxxx-xxxxx) 是 01、02、03、04、05、06、07、08、09、10、11、12、13、14、15、16、17 , 18.

你的"first two numbers"有点不清楚,但是怎么样:

var pattern = @"(0\d|1[0-8])\d\d-\d{4}-\d{5}";

如果你想匹配整个字符串而不是只找到子串,你需要

var pattern = @"^(0\d|1[0-8])\d\d-\d{4}-\d{5}$";

如果您没有用连字符分隔组,请使用:

var pattern = @"^(0\d|1[0-8])\d{11}$";

你可以像这样使用它

Regex.IsMatch(aString, pattern)