【发布时间】:2013-05-04 11:42:41
【问题描述】:
我想用 C# 编写一个正则表达式,它只输入特定数量的唯一数字。
就像写一个正则表达式来验证 5 位数字,比如“12345”
【问题讨论】:
-
请向我们展示您自己的尝试。 Stackoverflow 不是在这里为您完成工作,而是在您遇到困难时帮助您自己努力。
我想用 C# 编写一个正则表达式,它只输入特定数量的唯一数字。
就像写一个正则表达式来验证 5 位数字,比如“12345”
【问题讨论】:
将以下正则表达式与Regex.IsMatch 方法一起使用
^[0-9]{5}$
^ 和 $ 将分别将匹配锚定到字符串的开头和结尾,以防止在长字符串的中间找到匹配,例如 1234567890 或 abcd12345efgh .
[0-9] 表示一个字符类,它指定从0 到9 的字符范围。该范围由以指定字符开头和结尾的 Unicode 代码范围定义。后面的{5} 是一个量词,表示重复[0-9] 5 次。
注意^\d{5}$的解法只等价于上面的解法,当指定RegexOptions.ECMAScript时,否则it will be equivalent to \p{Nd},匹配任何Unicode数字——这里是the list of all characters in Nd category。您应该始终检查您使用的语言的文档,以了解简写字符类实际匹配的内容。
我强烈建议您通读documentation。您可以使用其他资源,例如 http://www.regular-expressions.info/,但始终请查看您所使用语言的文档。
【讨论】:
您可以在大括号中指定重复次数,如下所示:
\d{5}
如果您希望您的整个输入匹配一个模式,请将它们括在 ^ 和 $ 中:
^\d{5}$
【讨论】:
0-9 数字。它还将匹配其他 Unicode 数字
^ 和 $。
这个表达式应该通过
\d{5}[^\d]+
【讨论】: