Java 正则表达式匹配百分比,排除 0% 和 100% ,支持小数

可以使用以下正则表达式匹配包含小数的百分比,并排除 0% 和 100% 的情况:

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

解释:

  • (?!100\.?0*%|^0\.?0*%):负向先行断言,确保匹配的字符串不以 '100' 或 '0' 开头,且后面紧跟着 0 或多个 '.' 和 '0',最后以 '%' 结尾。
  • [1-9]?\d(\.\d{1,2})?%:匹配 1 到 99.99 之间的百分比,包含小数部分。

Java 代码示例:

String regex = "(?!100\.?0*%|^0\.?0*%)([1-9]?\d(\.\d{1,2})?%)";
String str = "50.5%, 100%, 0.0%, 0%, 101%, 50.55%";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出结果:

50.5%
50.55%

注意:

  • 以上代码只匹配了字符串中的百分比,如果需要更复杂的匹配,可以根据实际情况修改正则表达式。
  • 为了避免重复匹配,可以使用 matcher.find() 方法来查找下一个匹配项。
  • 可以使用 matcher.group() 方法获取匹配的字符串。

希望以上内容对您有所帮助!

Java 正则表达式匹配百分比,排除 0% 和 100% ,支持小数

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

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