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])