特定位数的正则表达式
我想在C#中编写一个正则表达式,只输入一定数量的唯一数字。
就像写一个正则表达式来validation5位数一样“12345”
使用以下正则表达式与Regex.IsMatch
方法
^[0-9]{5}$
^
和$
将匹配锚定到字符串的开头和结尾(分别),以防止在长字符串的中间找到匹配,例如1234567890
或abcd12345efgh
。
[0-9]
表示一个字符类,它指定从0
到9
的字符范围。 范围由以指定字符开头和结尾的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]+