Java用正则表达式判断是否为IP

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

原文地址:https://www.cnblogs.com/hzcya1995/p/13315319.html