我是StackOverflow的新手,所以如果有更好的方法可以提出以下问题,请告诉我.
我需要创建一个正则表达式来检测数据库中的字段是否为数字,如果是数字,则它是否在有效范围内(即1-50).我已经尝试过了[1-50]
,除了单个数字前面有一个0(即06)的情况之外.06仍应被视为有效数字,因为我可以稍后将其转换为数字.
我真的很感谢你的帮助!我正在努力学习更多关于正则表达式的知识,并且我一直在学习:www.regular-expressions.info.如果你们有其他网站推荐这些东西,我会很感激!
试试这个
^(0?[1-9])|([1-4][0-9])|(50)$
这个正则表达式的想法是将问题分解为案例
0?[1-9]负责单个数字的情况,允许在0之前选择
[1-4] [0-9]处理从10到49的所有数字.这也是一个数字上的前一个0的全部
50照顾50
正则表达式适用于字符(在本例中为数字),而不是数字.您需要为模式中的每个数字位数设置单独的模式,并将它们与|结合使用 (OR运算符)就像其他答案所建议的那样.但是,请考虑检查文本是否为带正则表达式的数字(如[0-9]+
),然后转换为整数并检查整数是否在范围内.