50,530
社区成员
发帖
与我相关
我的任务
分享
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test{
public static void main(String[] args){
String[] ips = {
"192.168.8.32", "192.168.9.32", "192.168.96.32",
"192.168.97.32", "192.168.74.32", "192.168.74.251", "192.168.11.251"
};
for(String ip : ips){
process(ip);
}
}
private static boolean process(String ip){
//不对值<=255判断.
String regex = "^\\Q192.168.\\E((?!(8|9|96|97)[.])(?!74[.]([\\d&&[^0]]|[\\d&&[^0]]\\d|(1[01]\\d|12[0-6]))$))(?<c>\\d+)[.](?<d>\\d+)$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(ip);
boolean result = matcher.matches();
if(result){
System.out.print(ip + " is valid! ");
System.out.println("[C:" + matcher.group("c") + ",D:" + matcher.group("d") + "]");
}else{
System.out.println(ip + " invalid!");
}
return result;
}
}
String str[] = { "192.168.8.32", "192.168.9.32", "192.168.96.32",
"192.168.97.32", "192.168.74.32", "192.168.74.251", "192.168.11.251" };
for (int i = 0; i < str.length; i++) {
Matcher m = Pattern.compile("192\\.168\\.(\\d+)\\.(\\d)").matcher(
str[i]);
if (m.find()) {
if (!m.group(1).equals("8") && !m.group(1).equals("9")
&& !m.group(1).equals("96") && !m.group(1).equals("97")) {
if (m.group(1).equals("74")
&& (Integer.parseInt(m.group(2)) >= 1 && Integer
.parseInt(m.group(2)) <= 126)) {
System.out.println(str[i]);
} else {
System.out.println(str[i]);
}
}
}
}