Java用正则表达式判断是否为IP
1、Java源码
/**
* @Title:IpAddress.java
* @Package:com.you.dao
* @Description:用正则表达式判断是否为IP
* @Author: 游海东
* @date: 2014年3月4日 下午10:55:06
* @Version V1.2.3
*/
package com.you.dao;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @类名:IpAddress
* @描述:用正则表达式判断是否为IP
* @Author:Administrator
* @date: 2014年3月4日 下午10:55:06
*/
public class IpAddress
{
public static class IpAdd
{
public boolean isIP(String addr)
{
if(addr.length() < 7 || addr.length() > 15 || "".equals(addr))
{
return false;
}
/**
* 判断IP格式和范围
*/
String rexp = "([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}";
Pattern pat = Pattern.compile(rexp);
Matcher mat = pat.matcher(addr);
boolean ipAddress = mat.find();
return ipAddress;
}
}
/**
* @Title : main
* @Type : IpAddress
* @date : 2014年3月4日 下午10:55:06
* @Description : IP可能的范围是0-255.0-255.0-255.0-255
* @param args
*/
public static void main(String[] args)
{
/**
* 符合IP地址的范围
*/
String oneAddress = "10.127.30.45";
/**
* 符合IP地址的长度范围但是不符合格式
*/
String twoAddress = "127.30.45";
/**
* 不符合IP地址的长度范围
*/
String threeAddress = "7.0.4";
/**
* 不符合IP地址的长度范围但是不符合IP取值范围
*/
String fourAddress = "255.255.255.2567";
IpAdd ipAdd = new IpAdd();
//判断oneAddress是否是IP
System.out.println(ipAdd.isIP(oneAddress));
//判断twoAddress是否是IP
System.out.println(ipAdd.isIP(twoAddress));
//判断threeAddress是否是IP
System.out.println(ipAdd.isIP(threeAddress));
//判断fourAddress是否是IP
System.out.println(ipAdd.isIP(fourAddress));
}
}
2、运行结果
true
false
false
false