特定位数的正则表达式

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

就像写一个正则表达式来validation5位数一样“12345”

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

 ^[0-9]{5}$ 

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

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

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

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

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

 \d{5} 

如果你想要你的整个输入匹配,一个模式将它们包含在^$

 ^\d{5}$ 

这个表达式应该通过

 \d{5}[^\d]+