日期:2014-05-20  浏览次数:21130 次

求一个正则表达式, 大于0 的非负数或非负小数,小数点后保留4位 急
求一个正则表达式, 大于0 的非负数或非负小数,小数点后保留4位 急

------解决方案--------------------
看楼主的意思看了半天。主要是觉得你太啰嗦了,不如直接说要一个大于0的有效数字,如果是小数,小数最多有4位。
你想要的是这个吧:
(([1-9][\d]*)(\.[\d]{1,4})?)
------解决方案--------------------
(0\.[\d]{1,4})

------解决方案--------------------
理解LZ的意思了,非负数,有小数的话,最多为4位小数
String regex = "(0*[.]((?!0)\\d
------解决方案--------------------
(?!00)\\d{2}
------解决方案--------------------
(?!000)\\d{3}
------解决方案--------------------
(?!0000)\\d{4}))
------解决方案--------------------
(\\d*[1-9]\\d*([.]\\d{1,4})?)";
String[] data = {"0", "0000", "00.0000", "0.1000", "0.0100", "0.0010", "0.0001",
                 "0.05", "1.0000", "10.0000", "10.0100", "10.25", "100", "123456"};
for (String s : data) {
    System.out.printf("%s:%b\n", s, s.matches(regex));
}