正则表达式排除某些错误的数字模式

时间:2016-09-11 14:28:55

标签: java regex

我在java中有一个包含良好数字类型的字符串数组:

 String [] valid={"5","-1","0","0.0","8.0","1.5","0.7","-0.2","0.09","-0.15"};

我有这个正则表达式匹配并检查它们是否有效:

    static boolean checkValidNum(String n){
        return n.matches("^-?\\d+(\\.\\d+)?");
    }

这个正则表达式可以检查什么是好的和有效的数字,但我想将以下内容排除为有效的数字:

    String [] invalidNum = {"001","-00.2","-0","-0.0"};

我应该在正则表达式中添加什么才能让它在那些nums上返回false?

1 个答案:

答案 0 :(得分:1)

使用|提供一些替代方案,例如:克。

static boolean checkValidNum(String n) {
    return n.matches("^-?([1-9]\\d*(\\.\\d+)?|0\\.\\d*[1-9]\\d*)|0(\\.0)?");
}