我在将输入字符串与正则表达式匹配时遇到问题。我想验证输入数字在 0-255 之间并且长度最多应为 3 个字符。代码工作正常,但当我输入 000000 至任意长度时,显示 true 而不是 false。
这是我的代码:-
String IP = "000000000000000";
System.out.println(IP.matches("(0*(?:[0-9][0-9]?|[0-2][0-5][0-5]))"));
最佳答案
测试了这个:
static String pattern = "^(([0-1]?[0-9]?[0-9]?|2[0-4][0-9]|25[0-5])\\.){3}([0-1]?[0-9]?[0-9]?|2[0-4][0-9]|25[0-5]){1}$";
它适用于以下情况:
- IP 地址 xxx.xxx.xxx.xxx/xx.xx.xx.xx/x.x.x.x/这些地址的混合。
- 允许使用前导零。
- 范围 0-255/最多 3 位。
关于java - 使用正则表达式验证输入字符串是否为 0-255 之间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684083/