^1001-9dd12$ 这个正则表达式怎么调整为不包含0和100并且支持2位小数并用java进行测试
可以将正则表达式修改为:
^(0|[1-9]?\d(\.\d{1,2})?)%$
其中,将100改为0,表示不匹配以100%结尾的字符串;并且将首位匹配的100修改为0,表示不匹配以0%开头的字符串。
Java测试代码如下:
String regex = "^(0|[1-9]?\d(\.\d{1,2})?)%$"; String str1 = "0%"; String str2 = "100%"; String str3 = "50%"; String str4 = "50.5%"; String str5 = "50.55"; String str6 = "5.5%"; String str7 = "105.5%"; String str8 = "-5.5%"; String str9 = "0.0%";
System.out.println(str1.matches(regex)); // false System.out.println(str2.matches(regex)); // false System.out.println(str3.matches(regex)); // true System.out.println(str4.matches(regex)); // true System.out.println(str5.matches(regex)); // false System.out.println(str6.matches(regex)); // true System.out.println(str7.matches(regex)); // false System.out.println(str8.matches(regex)); // false System.out.println(str9.matches(regex)); // true
输出结果为:
false false true true false true false false true
可以看到,修改后的正则表达式可以正确匹配符合条件的字符串。
原文地址: https://www.cveoy.top/t/topic/7QK 著作权归作者所有。请勿转载和采集!