【发布时间】:2012-03-21 07:16:16
【问题描述】:
我需要一个正则表达式来验证小数点和范围。应包含 3 个数字,包括点,并且值必须大于 0.0。这意味着有效范围是从 0.1 到 7.0。
我使用了以下正则表达式:^\\d{1,1}(\\.\\d{1,2})?$
除了范围验证外,它工作正常。我需要改变什么?
【问题讨论】:
-
如果可能的话,我建议不要对这个任务使用正则表达式。 (例如,如果有的话,仅将其用作第一阶段。)
-
您当前的正则表达式还允许整数 (
5) 和精度更高的小数 (0.11),根据您的问题文本,这不应该被允许。你真正想要什么? -
if(s.matches("^\\d{1,1}(\\.\\d{1,2})?$") && Double.valueOf(s) >= 0.1 && Double.valueOf(s) <= 7.0) { ... }