可以使用以下正则表达式来满足要求:

^(?!0%|100%)([1-9]?\d(\.\d{1,2})?|0\.\d{1,2})%$

在原有的正则表达式基础上,使用了负向前瞻来排除 0% 和 100% 的情况。同时,为了支持小数,将第一个数字的前缀 0 改为可选项。最后,使用了一个或操作符来支持小数的情况。

以下是 Java 代码示例:

String regex = "^(?!0%|100%)([1-9]?\d(\.\d{1,2})?|0\.\d{1,2})%$";
Pattern pattern = Pattern.compile(regex);

String str1 = "50%";
String str2 = "0%";
String str3 = "100%";
String str4 = "5.5%";
String str5 = "0.01%";
String str6 = "99.99%";
String str7 = "101%";
String str8 = "50.123%";

System.out.println(str1.matches(regex)); // true
System.out.println(str2.matches(regex)); // false
System.out.println(str3.matches(regex)); // false
System.out.println(str4.matches(regex)); // true
System.out.println(str5.matches(regex)); // true
System.out.println(str6.matches(regex)); // true
System.out.println(str7.matches(regex)); // false
System.out.println(str8.matches(regex)); // true
Java 正则表达式:匹配百分比值 (排除 0% 和 100%)

原文地址: https://www.cveoy.top/t/topic/mwKM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录