特定位数的正则表达式

时间:2013-05-04 11:42:41

标签: c# regex

我想在C#中编写一个正则表达式,只输入一定数量的唯一数字。

像编写正则表达式来验证5位数一样,如“12345”

3 个答案:

答案 0 :(得分:30)

将以下正则表达式与Regex.IsMatch方法

一起使用
^[0-9]{5}$

^$会将匹配锚定到字符串的开头和结尾(分别),以防止在长字符串的中间找到匹配项,例如{{1 }或1234567890

abcd12345efgh表示一个字符类,用于指定从[0-9]0的字符范围。范围由以指定字符开头和结尾的Unicode代码范围定义。跟在后面的9量词,表示重复{5} 5次。

请注意,[0-9]的解决方案仅等同于上述解决方案,当指定RegexOptions.ECMAScript时,否则,it will be equivalent to \p{Nd},其匹配任何Unicode数字 - 这里是{{3} }。您应该始终检查您正在使用的语言的文档,以了解速记字符类实际匹配的内容。

我强烈建议你仔细阅读the list of all characters in Nd category。您可以使用其他资源,例如documentation,但始终请查看您正在使用的语言的文档。

答案 1 :(得分:2)

您可以在大括号中指定重复次数,如下所示:

\d{5}

如果您希望整个输入匹配,则将图案括在^$中:

^\d{5}$

答案 2 :(得分:-1)

此表达式应传递

\d{5}[^\d]+