java中,IP的格式判断是经常用到的,下面是经过测试可用的表达式。
判断IP格式的正则表达式:
"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$"
判断IP+端口号的正则表达式:
"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)"+
":([0-9]|[1-9]\\d{1,3}|[1-5]\\d{4}|6[0-5]{2}[0-3][0-5])$"
使用中要注意格式,上面提供的两个表达式中的"\\"均是转义后的"\"。
用正则表达式做IP格式判断的
工具类:
public class IsIpUtil {
/**
* 判断
含端口号的IP地址是否合法
* */
public static boolean isIp(String text) {
if (text != null && !text.isEmpty()) {
// 定义正则表达式
String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."+
"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)"+
":([0-9]|[1-9]\\d{1,3}|[1-5]\\d{4}|6[0-5]{2}[0-3][0-5])$";
// 判断ip地址是否与正则表达式匹配
if (text.matches(regex)) {
// 返回判断信息
return true;
} else {
// 返回判断信息
return false;
}
}
return false;
}
}
如果只判断
不含端口号的IP,只需把regex替换掉即可。