public class Hello {

public boolean isIPv6(String address)

{

boolean result = false;

String regHex = "(\\p{XDigit}{1,4})";

//没有双冒号

String regIPv6Full = "^(" + regHex + ":){7}" + regHex + "$";

//双冒号在中间或者没有双冒号

String regIPv6AbWithColon = "^(" + regHex + "(:|::)){0,6}" + regHex

+ "$";

//双冒号开头

String regIPv6AbStartWithDoubleColon = "^(" + "::(" + regHex

+ ":){0,5}" + regHex + ")$";

String regIPv6 = "^(" + regIPv6Full + ")|("

+ regIPv6AbStartWithDoubleColon + ")|(" + regIPv6AbWithColon

+ ")$";

//System.out.println("regIPv6 =" + regIPv6);

//regIPv6 =^(^((\p{XDigit}{1,4}):){7}(\p{XDigit}{1,4})$)|(^(::((\p{XDigit}

//{1,4}):){0,5}(\p{XDigit}{1,4}))$)|(^((\p{XDigit}{1,4})(:|::)){0,6}(\p

//{XDigit}{1,4})$)$

//等价于^(^::$)|(^([\\d|a-fA-F]{1,4}:){7}([\\d|a-fA-F]{1,4})$)|(^(::

//(([\\d|a-fA-F]{1,5}([\\d|a-fA-F]{1,4}))$)|(^(([\\d|a-fA-F]{1,4})

//(:|::)){0,6}([\\d|a-fA-F]{1,4})$)$

//下面还要处理地址为::的情形和地址包含多于一个的::的情况(非法)

if (address.indexOf(":") != -1)

{

if (address.length() <= 39)

{

String addressTemp = address;

int doubleColon = 0;

if(address.equals("::"))return true;

while (addressTemp.indexOf("::") != -1)

{

addressTemp = addressTemp.substring(addressTemp

.indexOf("::") + 2,addressTemp.length());

doubleColon++;

}

if (doubleColon <= 1)

{

result = address.matches(regIPv6);

}

}

}

return result;

}

public static void main(String[] args)

{

Hello hello=new Hello();

boolean bln=false;

bln=hello.isIPv6("::");

System.out.println("Start...") ;

if (bln)

System.out.println("OK") ;

else

System.out.println("NO") ;

}

}

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java ipv6正则表达式_用正则表达式验证IPv6地址的例子相关推荐

  1. 正则语言和正则表达式_探索正则表达式背后的语言学

    正则语言和正则表达式 by Alaina Kafkes 由Alaina Kafkes 探索正则表达式背后的语言学 (Exploring the Linguistics Behind Regular E ...

  2. java 车牌号验证正则表达式_使用正则表达式验证手机号、车牌号

    1.javascript验证手机号 function checkPhone(){ var sPhone = document.getElementById("id").value ...

  3. java jui 正则表达式_常规正则表达式练习

    PS:join()数组转串,split()串转数组 1.test():在字符串查找符合正则的内容,如果查找到返回true,反之返回false 用法:正则.test(字符串) 2.search():在字 ...

  4. java车牌正则表达式_车牌正则表达式

    public static void main(String [] args){ //车牌示例 String hphm[] = { "沪A0002B","沪A0001警& ...

  5. regex 正则表达式_使用正则表达式(Regex)删除HTML标签

    regex 正则表达式 Most of the data in the world are unstructured data form because, in human communication ...

  6. java validate 框架_使用validate验证框架

    主要是两个配置文件和资源文件的修改,然后就是在jsp中输出验证的结果 validator-rules.xml是验证注册类,用于定义验证逻辑,它的部分代码 className="org.apa ...

  7. mysql ipv6 禁用_使用ip6tables禁用ipv6

    在上世纪90年代,也就是1994年的时候人们因为应对ipv4地址的短缺的问题而提出使用NAT技术ip过载,就出现了局域网的概念,让局域网的私有ip能过通过NAT转发来实现上网,NAT不仅能解决了lP地 ...

  8. java 地图坐标转换_百度地图经纬度和地址互转(Java代码)

    这是基于springmvc+mybatis 的一个controller.如果不是这个框架,可以把方法实体抽到自己写的一个类中,然后再测试 package com.uwitec.controller.s ...

  9. java ipv6校验_JS及java验证 IPV6,IPV4地址的 正则表达式 | 学步园

    JS 验证: ipv4地址验证: function queryDev(ip){ var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2 ...

最新文章

  1. 国内外财务软件科目结构的比较
  2. 【redis】在windos下的redis服务器的搭建
  3. 食物在人体内消化主要经过哪些步骤
  4. 重磅发布 | 蚂蚁金服与电子标准院达成战略合作 共同推进数据安全行业的标准化...
  5. ArcGIS连接pg数据库
  6. ISO 2768-1 标准
  7. Matlab中批读取DCM文件
  8. Axure8.0基础教程(11-20)AxureRP8基础操作
  9. 初中计算机课师徒结对活动记录,2013师徒结对活动记录
  10. LVGL lv_msgbox消息对话框(22)
  11. java2048_java之2048
  12. 汇编 bne 1b和bne 1f浅析
  13. HttpClient上传文件到微信素材乱码问题解决
  14. 灰色-马尔可夫预测模型
  15. js根据生日计算出年龄
  16. Packet Tracer 思科模拟器入门教程 之十三 路由器OSPF动态路由配置
  17. 多重共线性是如何影响回归模型的
  18. 正交排列法、正交试验设计、正交表
  19. 人工智能发展月报(2022年11月)
  20. 导出iphone手机安装包的几种方法

热门文章

  1. Python中lambda表达式_匿名函数
  2. 稻盛和夫说过的十句经典管理名言是什么?
  3. html —— label 标签
  4. 精灵骑士二觉_DNF精灵骑士二觉大地女神技能介绍 精灵骑士二觉改动详解
  5. [深入研究4G/5G/6G专题-59]: 以太网交换平台软件如何升级成基站平台软件
  6. 中移动3G第一阶段全业务曝光 含34个增值业务
  7. 微软第三财季营收306亿美元 净利润88亿同比增19%
  8. 跟低效说拜拜,教你一键创建多个SOLIDWORKS 工程图
  9. C语言解决对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?
  10. mybatis-sparing- 1.1.1 和1.1.2版本的区别