指定位数的正则表达式
本文关键字:正则表达式 定位 | 更新日期: 2023-09-27 18:12:01
我想在c#中编写一个正则表达式,它只输入特定数量的唯一数字。
就像写一个正则表达式来验证5位数字,比如"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]+