我在输入字符串与Regex匹配时遇到问题.我想验证输入数字在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]))"));
Run Code Online (Sandbox Code Playgroud)
小智 9
测试了这个:
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}$";
Run Code Online (Sandbox Code Playgroud)
它适用于以下情况:
你可以使用这个正则表达式:
boolean valid = IP.matches("\\b(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\\b");
Run Code Online (Sandbox Code Playgroud)
您可以使用匹配"0", "1", ... 的模式"255":
"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
Run Code Online (Sandbox Code Playgroud)