java ip可用_Java正则验证IP的方法实例分析【测试可用】

本文实例讲述了java正则验证ip的方法。分享给大家供大家参考,具体如下:

网上用正则验证ip的表达式有很多,一搜一大堆,可以自己写,但很麻烦又费事,用别人写的难免有bug。

找了几个测试一下,不是有bug,就是连正确的ip也不认识了,好多还信誓旦旦,仿佛自己做过测试似的。

今天找到一个比较行的通的表达式,不过也有一个小的bug(用*号时,不报错)

package des;

import java.util.regex.matcher;

import java.util.regex.pattern;

public class ip {

/**

* @param args

*/

public static void main(string[] args) {

// todo auto-generated method stub

ip p=new ip();

string ii="127.0.0.1";

string ii2="127.0.0.";

string ii3="127.0.0.1000";

string ii4="256.0.0.1";

string ii5="127.0.0.gg";

string ii6="127.h.0.1";

string ii7="127.555.0.1";

string ii8="127.00.0.1";

string ii9="127.0.04.1";

string ii10="127.100.#.1";

string ii11="127.*.0.1";

string ii12="127.0.0.000";

string ii13="192.168.3.12";

system.out.println("来自 www.jb51.net 的测试结果:");

p.ismatches(ii);

p.ismatches(ii2);

p.ismatches(ii3);

p.ismatches(ii4);

p.ismatches(ii5);

p.ismatches(ii6);

p.ismatches(ii7);

p.ismatches(ii8);

p.ismatches(ii9);

p.ismatches(ii10);

p.ismatches(ii11);

p.ismatches(ii12);

p.ismatches(ii13);

}

public boolean ismatches(string ip){

boolean flag=false;

try{

// string regex="[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+";

string regex="^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$";

//正确的是

//string regex="^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$";

// string regex="\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b";

pattern p=pattern.compile(regex);

matcher m=p.matcher(ip);

if(m.find()){

system.out.println("successss");

return true;

}else{

system.out.println("falsss");

}

}catch(exception e){

e.printstacktrace();

}

return flag;

}

}

运行结果如下图:

e4bbcbc8859484e0870790bcd154185d.png

可见倒数第3个带有*的是错的,但还是输出成功了

将正则改成:

string regex="^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$";

测试结果如下:

8df0c9404fb6650871860821fd75cafd.png

至此完全正确!

ps:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

javascript正则表达式在线测试工具:

正则表达式在线生成工具:

希望本文所述对大家java程序设计有所帮助。

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值