正则表达式匹配百分数(排除0%和100%)
正则表达式匹配百分数(排除0%和100%)
可以将正则表达式修改为:
^(?!0\.?0*%$|100\.?0*%$)(\d{1,2}(\.\d{1,2})?|0\.\d{1,2}|100\.?0*%)$
其中,(?!0\.?0*%$|100\.?0*%$)是一个负向先行断言,表示不匹配'0%'和'100%';\d{1,2}(\.\d{1,2})?表示匹配1~2位整数和0~2位小数的百分数;0\.\d{1,2}表示匹配0.x%的百分数;100\.?0*%表示匹配100%。
Java代码示例:
String regex = "^(?!0\.?0*%$|100\.?0*%$)(\d{1,2}(\.\d{1,2})?|0\.\d{1,2}|100\.?0*%)$";
String[] tests = {"0%", "0.00%", "50%", "99.99%", "100%", "100.00%", "101%", "-1%"};
for (String test : tests) {
System.out.println(test + " : " + test.matches(regex));
}
输出:
0% : false
0.00% : false
50% : true
99.99% : true
100% : false
100.00% : false
101% : false
-1% : false
原文地址: https://www.cveoy.top/t/topic/mwKG 著作权归作者所有。请勿转载和采集!