我想使用正则表达式来匹配恰好包含 2 个字符的字符串,并且这两个字符都必须介于 0 和 9 之间。当 ASP.NET 运行时,要匹配的字符串将来自单行文本输入字段MVC 视图已渲染
到目前为止,我有正则表达式
[0-9]{2}
以及以下示例字符串输入列表
当我应用正则表达式时,会返回以下匹配项
所以,我有一半的解决方案......我实际上想要强制执行的是字符串也恰好是 2 个字符长,因此从字符串列表中,唯一应该匹配的是
12
我是正则表达式方面公认的业余爱好者,我只是使用它来验证 ASP.NET MVC 模型上的卡发行编号,如下所示......
[Required]
[RegularExpression("[0-9]{2}")]
public string IssueNumber { get; set; }
我确信我要问的很简单,但我找不到任何限制长度作为匹配一部分的示例。
谢谢,提前。
您可以使用线条指示器的开始 (
^
) 和结束 ($
):
^[0-9]{2}$
某些语言还具有允许您匹配整个字符串的函数,就像您使用
find
函数一样。匹配整个字符串将使您的正则表达式可以替代上述内容。上面的正则表达式也可以工作,但是 ^
和 $
将是多余的。
您需要使用锚点来匹配字符串的开头
^
和字符串的结尾$
^[0-9]{2}$
这样的东西会起作用
/^\d{2}$/
当您始终有两位数时,上述解决方案 [0-9]{2} 会匹配,即使表示一位数,例如 01 代表 1。
如果您正在处理从 0 到 12 的普通数字“整数”(表示 12 小时制),则可以使用以下表达式:
r"1[0-2]|[1-9]"