public static void main(String[] args) throws Exception {

        String value_str = "0.000";
        System.out.println(value_str.matches("([1-9]\\d*\\.?\\d*)|(0\\.\\d*)"));
    }

用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*)

(

[1-9] :匹配1~9的数字;

\d :匹配数字,包括0~9;

* :紧跟在 \d 之后,表明可以匹配零个及多个数字;

\. :匹配小数点;

? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;

0 :匹配一个数字0;

)
其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、56.78 之类的非负的整数和浮点数;

其中的 0\.\d* 用以匹配诸如:0.1、0.23、0.405、0.00 之类的非负浮点数;

如果禁止小数后边的数字为0,表达式可以写为:([1-9]\d*\.?\d*)|(0\.\d*[1-9])

更多推荐

正则表达式匹配非负数字