Reg表达式接受1到48之间的值?

时间:2013-02-05 11:23:51

标签: java regex

我希望Reg表达式接受[1-48]范围内的值。

2 个答案:

答案 0 :(得分:4)

您可以尝试使用此正则表达式:^0*(?:[1-9]|[1-3][0-9]|4[0-8])$

但是,如果可能的话,我建议使用其他机制进行数字验证。正则表达式用于匹配字符串模式,正如评论中已经指出的那样。

以下是正则表达式的部分解释:

  • ^:字符串的开头
  • 0*:匹配任何前导0
  • (?::对OR进行分组(非捕获组)
    • [1-9]:匹配1到9
  • |:或
    • [1-3][0-9]:匹配10到39
  • |:或
    • 4[0-8]:匹配40到48
  • ):结束对OR的分组
  • $:字符串结尾

this RegExr中查看它。

您可能会发现一些有用的资源可以帮助您自己设计/测试它们:

答案 1 :(得分:0)

我不明白你为何使用regEx。你可以直接说

if( x >= 1 && x <=48) {
   // x will fall in range[1-48] inclusive
}