我一直面临着限制双重价值的问题 限制。但我的正则表达式与预期不符 结果。请指导我如何纠正它。
正则表达式
^[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
答案 0 :(得分:2)
要将0
到15
的数字与可选的前导零和必须的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]
- 10
至15
(1
后跟0
至5
的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