user3299182
user3299182

Reputation: 601

Regex to exclude certain wrong numbers pattern

I have an array of string in java that include good types of numbers:

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

And i have this regex to match and check if those are valid or not:

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

This regex is ok to check what is good and valid num but i want to exclude the following as valid nums:

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

What should i add to my regex to make it return false on those nums?

Upvotes: 1

Views: 44

Answers (1)

fabian
fabian

Reputation: 82461

Provide some alternatives using |, e. g.

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

Upvotes: 1

Related Questions