可以使用以下正则表达式来匹配不包含0%和100%的百分数:

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

这个正则表达式的含义是:

  • ^ 表示匹配字符串的开头
  • ([1-9]|[1-9]\d|\d\.\d{1,2}|[1-9]\d\.\d{1,2}) 表示匹配百分数,具体解释如下:
    • [1-9] 匹配1-9之间的任意一个数字
    • [1-9]\d 匹配10-99之间的任意一个数字
    • \d\.\d{1,2} 匹配小数,例如0.1、0.23等
    • [1-9]\d\.\d{1,2} 匹配10.0-99.99之间的任意一个小数
  • % 表示匹配百分号
  • $ 表示匹配字符串的结尾

使用Java代码测试:

String regex = "^([1-9]|[1-9]\d|\d\.\d{1,2}|[1-9]\d\.\d{1,2})%$";
String[] testCases = {"0%", "50%", "99.99%", "100%", "10.1%", "0.1%", "101%", "9.123%"};

for (String testCase : testCases) {
    if (testCase.matches(regex)) {
        System.out.println(testCase + " 匹配成功");
    } else {
        System.out.println(testCase + " 匹配失败");
    }
}

输出结果为:

0% 匹配失败
50% 匹配成功
99.99% 匹配成功
100% 匹配失败
10.1% 匹配成功
0.1% 匹配成功
101% 匹配失败
9.123% 匹配成功
Java正则表达式匹配不包含0%和100%的百分数

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

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