Java 正则表达式匹配百分比,排除 0% 和 100% ,支持小数
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()方法获取匹配的字符串。
希望以上内容对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/mwKB 著作权归作者所有。请勿转载和采集!