用正则表达式解析IPv4和IPv6地址字符串

以下是经过我的.net C# 代码百般测试的,绝对经得住考验!

IPv4[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}

IPv6

((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:)))(%.+)?

ipv4 | ipv6 (this is good based on test)

([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:)))(%.+)?)

测试代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Text.RegularExpressions;

namespace RegExTester

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Parse(txtStringToBeParsed.Text);

}

void Parse(String inputString)

{

Regex r;

Match m;

Int32 startpos = 0, len = 0;

bool IsFirst;

string rstr = txtPatten.Text;

//string rstr = "href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))";

//"(?

r = new Regex(rstr,

RegexOptions.IgnoreCase | RegexOptions.Compiled);

IsFirst = true;

txtParseResult.Text = "";

for (m = r.Match(inputString); m.Success; m = m.NextMatch())

{

if (IsFirst == true)

{

startpos = m.Groups[1].Index;

len = m.Groups[1].Length;

IsFirst = false;

}

//textBox2.Text = textBox2.Text +

//"Found : " + m.Groups[1].Value + " at "

//    + m.Groups[1].Index + " with length " + m.Groups[1].Length + "\r\n"

//    + "Whole: " + m.Value + "\r\n";

txtParseResult.Text = txtParseResult.Text + "[" + m.Value +"]" + "\r\n";

}

//select the first match string

txtStringToBeParsed.Select(startpos, len);

txtStringToBeParsed.Focus();

}

private void Form1_Load(object sender, EventArgs e)

{

}

}

}

1楼mhmyqn昨天 17:27[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}n255.277.888.999n这个也是合法的IPV4地址吗?

ipv6正则表达式 java,用正则表达式解析IPv4跟IPv6地址字符串相关推荐

  1. java http ipv6_如何在Java上同时支持IPv4和IPv6

    小编典典 我怀疑这不是Java编程问题,而是OS网络堆栈/ OS网络配置问题: 在某些操作系统上,单个本机TCP套接字可以同时侦听IPv4和IPv6上的端口.它能够接受来自远程IPv4和远程IPv6客 ...

  2. java ipv4和ipv6通信_IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信

    1 IPv4和IPv6的差异 1.1 地址空间 IPv6 与 IPv4 比较最显著的一个改动就是使用 128 比特上的地址来代替了 32 比特长的 IPv4 地址. IPv6 中取消了广播地址, 其功 ...

  3. 计算机网络ipv4到ipv6怎么实现,论计算机网络协议IPV4到IPV6的过渡策略|房屋搬迁过渡协议...

    摘要:近年来IPV4协议的网络地址问题已经成为阻碍互联网发展的主要矛盾,而互联网的发展趋势将证明IPV4协议必将会被IPV6协议所替代,但其过渡的过程必定是艰难而漫长的.本文论述了IPV4协议存在的主 ...

  4. 在家上用宽带IPv6网站,下载六维,IPv4 to IPv6

    家里的电信还没有通IPv6,突然想去六维上面下几部电影(其实想看一下最近的新片出了没有). 有一些现成的软件就可以使用,但是我总觉的这样不够好,至少要略略知道一点点原理的好. 现成的软件包括 六飞 h ...

  5. IPv6之初使用,及IPv4与IPv6的socket通信

    1.IPv6概念 IPv6是InternetProtocol Version 6的缩写.IPv6是IETF(互联网工程任务组,InternetEngineering Task Force)设计的用于替 ...

  6. 为什么不使用ipv6计算机网络,细说计算机网络中的ipv4和ipv6

    在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少人都觉得比较奇怪,IPv4与 ...

  7. JAVA:正则表达式(入门)

    JAVA:正则表达式(入门) 正则表达式 JAVA:正则表达式(入门) 前言 正则的作用 正则的符号含义 正则表达式在字符串中的常用方法 正则表达式对象Pattern(爬虫) 贪婪爬取与非贪婪爬取 捕 ...

  8. ipv6 java代码影响_浅谈IPv4至IPv6演进的实施路径

    作者:个推运维平台网络工程师 宗堂 1 业务背景 在互联网呈现爆炸式发展的今天, IPv4网络地址数量匮乏等问题将会影响到我国的互联网发展与应用,制约物联网.5G等新业务开展.今年4月国家工信部发布了 ...

  9. java中http解析url,java url 编码(解析http请求汉语言地址 )

    java url 编码(解析http请求中文地址 ) 在近在做项目的过程中,由于客户那边服务器上提供的有很多中文结构目录.请求要的地址不能正常运行显示出来.下面来分享一下我对http协议处理请求中文的 ...

最新文章

  1. 文件列表出现分页按钮
  2. 如何使用机器学习进行异常检测和状态监控?
  3. mongo 改字段名_一日一技:修改MongoDB集合中的字段名
  4. Mangos源码分析(2):服务器结构探讨之登录服的负载均衡
  5. java radio_java radioButton
  6. axios 请求接口获取文件流数据导出数据到excel,解决乱码
  7. 计算机主机前后,Win10电脑主机前面的耳机插口没声音怎么办?前置面板插孔没声音...
  8. 整理了 25 个 Python 文本处理案例,收藏!
  9. LeNet识别眼疾iChallenge-PM
  10. 密码破解---John the Ripper使用
  11. Android实现九宫格图片控件
  12. MOBA游戏草丛系统的个人思路
  13. 声音和音频设备属性无法设置
  14. 全网最全ebay大数据面经合集
  15. 云队友丨在注意力稀缺的时代,专注是你成败的关键筹码
  16. IOS原生生成二维码
  17. 王兴的无限游戏和美团的三维文明世界|一点财经
  18. Codevs 2382 挂缀
  19. Java毕设项目电商平台客流统计系统(java+VUE+Mybatis+Maven+Mysql)
  20. dpo指标详解买入绝技_雷霆一击战法买入及卖出方法的相关介绍

热门文章

  1. iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
  2. 每日小记 2017.6.29
  3. 【英语学习】【WOTD】resuscitate 释义/词源/示例
  4. nginx反向代理配置去除前缀
  5. tomcat 如何跳转到apache_第二十期:基于tomcat部署jforum站点,并结合nginx实现动静分离...
  6. python距离向量路由算法_互联网中常用路由协议,路由协议基础,一分钟了解下...
  7. matlab中ode45函数的用法_带你理解Excel中COUNTIF函数的简单用法
  8. Java:实验四第6题
  9. 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
  10. Performance Optimization for Mobile Devices