我想在C#中编写一个正则表达式,只输入一定数量的唯一数字。
像编写正则表达式来验证5位数一样,如“12345”
答案 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]+