11

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

就像写一个正则表达式来验证 5 位数字,比如“12345”

4

3 回答 3

42

将以下正则表达式与Regex.IsMatch方法一起使用

^[0-9]{5}$

^并将$匹配锚定到字符串的开头和结尾(分别),以防止在长字符串的中间找到匹配,例如1234567890or abcd12345efgh

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

请注意, 的解决方案^\d{5}$仅等效于上述解决方案,RegexOptions.ECMAScript指定了 when ,否则将等效于\p{Nd},它匹配任何 Unicode 数字 - 这里是category中所有字符的列表Nd。您应该始终检查您使用的语言的文档,以了解速记字符类实际匹配的内容。

我强烈建议您通读文档。您可以使用其他资源,例如http://www.regular-expressions.info/,但请务必查看您所使用语言的文档。

于 2013-05-04T11:52:56.990 回答
5

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

\d{5}

如果您希望整个输入匹配一个模式,请将它们括在^and中$

^\d{5}$
于 2013-05-04T11:44:03.977 回答
0

这个表达式应该通过

\d{5}[^\d]+
于 2013-05-04T11:52:04.743 回答