我在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?
答案 0 :(得分:1)
使用|
提供一些替代方案,例如:克。
static boolean checkValidNum(String n) {
return n.matches("^-?([1-9]\\d*(\\.\\d+)?|0\\.\\d*[1-9]\\d*)|0(\\.0)?");
}