指定位数的正则表达式

本文关键字:正则表达式 定位 | 更新日期: 2023-09-27 18:12:01

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

就像写一个正则表达式来验证5位数字,比如"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]+