本文共 1803 字,大约阅读时间需要 6 分钟。
[正则表达式在处理文本方面用处非常大,最早像在Perl和awk语言中,提供了这种机制,Java在Java 2中也增加了正则表达式这个包java.util.regex。这个包为用户� ...]
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、运行结果
[Java 提供了功能强大的正则表达式API,在java.util.regex 包下。本教程介绍如何使用正则表达式API。]
true
false
false
false
[对于JAVA的Pattern类 和 Matcher类可参考网址 http://www.ibm.com/developerworks/cn/java/l-regp/part2/ 正则表达式中的特殊字符: \\ 反斜杠 \t 间隔 ('\u0009')
转载地址:http://igeav.baihongyu.com/