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