使用double值将正则表达式限制为特定限制

时间:2016-12-09 06:40:50

标签: regex preg-match regular-language

  

我一直面临着限制双重价值的问题   限制。但我的正则表达式与预期不符   结果。请指导我如何纠正它。

正则表达式

^[0-1]?([0-5]{1,2})?(\.[0-9][0-9])?$ 

预期结果:

Values should pass the condition ranges from range 00.00 to 15.99

失败情景

6.12
7.12
8.21
9.21

2 个答案:

答案 0 :(得分:2)

要将015的数字与可选的前导零和必须的1或2位小数部分相匹配,您可以使用

^(?:0?[0-9]|1[0-5])\.[0-9]{1,2}$

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • (?:0?[0-9]|1[0-5]) - 两种选择中的任何一种:
    • 0?[0-9] - 可选 0后跟1位数字
    • | - 或
    • 1[0-5] - 10151后跟05的1位数字)
  • \. - 一个点
  • [0-9]{1,2} - 1或2位数字
  • $ - 字符串结束(可以替换为\z以匹配字符串的结尾)。

答案 1 :(得分:2)

这样可行:^(1[0-5]|0[0-9]|[0-9])(?:\.([0-9]{1,2}))$ 您可以通过将{1,2}更改为所需的最小值和最大值来调整小数的数量。完全匹配将获得$ 0,$ 1是整数部分,$ 2是小数部分。

请参阅此处的示例:https://regex101.com/r/XC1lff/7