关键字:IP地址 正则表达式
作者:txw1958
出处:http://www.cnblogs.com/txw1958/archive/2011/10/13/ip_address_regular_expression.html

IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。例如:某台计算机IP地址为10.11.44.100。

分析IP地址的组成特点:250-255、200-249、0-199。
这三种情况可以分开考虑,
1. 250-255:特点:三位数,百位是2,十位是5,个位是0~5,用正则表达式可以写成:25[0-5]
2. 200-249:特点:三位数,百位是2,十位是0~4,个位是0~9,用正则表达式可以写成:2[0-4]\d
3. 0-199:这个可以继续分拆,这样写起来更加简单明了.
  3.1. 0-9:    特点:一位数,个位是0~9,用正则表达式可以写成:\d
  3.2. 10-99:  特点:二位数,十位是1~9,个位是0~9,用正则表达式可以写成:[1-9]\d
  3.3. 100-199:特点:三位数,百位是1,十位是0~9,个位是0~9,用正则表达式可以写成:1\d{2}

于是0-99的正则表达式可以合写为[1-9]?\d,那么0-199用正则表达式就可以写成(1\d{2})|([1-9]?\d),这样0~255的正则表达式就可以写成(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))
最后,前面3段加上句点.可以使用{3}重复得到,第4段再来一次同样的匹配,得到IP地址的正则表达式:

((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))

与大家互动一下:

1.  为什么三位数的匹配放在二位数/一位数的前面?因为正则表达式规则之一:最先开始的匹配拥有最高的优先权。
2.  0.0.0.0和255.255.255.255是合法存在的IP地址,你知道是为什么吗?
3.  192.169.01.108这种数字前面多带了个0的类型的,在这里不是合法的,为什么要这样?
4.  为什么前面在最前面要有?:呢?它在这里有什么用?
5.  如果您发现本表达式有错误,也请留言指正!

我使用的正则表达式验证工具,The Regulator 下载地址:http://sourceforge.net/projects/regulator/

IP地址的正则表达式相关推荐

  1. 字符串中查找IP地址的正则表达式

    字符串中查找IP地址的正则表达式: IP地址:(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[ ...

  2. python正则匹配ip地址_Python正则表达式匹配ip地址实例

    Python正则表达式匹配ip地址实例 更新时间:2014年10月09日 11:22:51 投稿:shichen2014 这篇文章主要介绍了Python正则表达式匹配ip地址实例,通过简单的实例讲述了 ...

  3. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  4. python正则匹配ip地址_python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  5. python re正则提取ip地址_Python正则表达式匹配和提取IP地址

    No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...

  6. python re正则提取ip地址_python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  7. php中ip地址的正则表达式,PHP_IP地址正则表达式匹配方法,正则表达式(Regular Expression, - phpStudy...

    IP地址正则表达式匹配方法 正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个 ...

  8. ip地址检查正则表达式 兼容ipv4,ipv6

    参考 http://www.cnblogs.com/winnxm/archive/2008/12/15/1355111.html 优化后的表达式兼容ipv4.ipv6 方法 /// <summa ...

  9. 检测IP地址的正则表达式

    正则表达式: ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) ((2[0-4]\d|25[0-5]|[01]?\d\ ...

最新文章

  1. Debian 陷入尴尬,社区或群龙无首
  2. Spark 写出MySQL报错,java.sql.BatchUpdateException
  3. hash表建立 很久没写数据结构了
  4. 究竟有多少假代购,在2亿多海淘用户市场里浑水摸鱼?
  5. qstring 属于元数据类型吗_元数据,描述“数据”的“数据”
  6. win10计算机修改底色,win10电脑如何修改登陆背景
  7. oracle最大实例数,【ORA-16196】一个实例在其生命周期里最多只能装载和打开一个数据库...
  8. memcached安装及.NET中的Memcached.ClientLibrary使用详解
  9. PyQt5笔记(01) -- 创建空白窗体
  10. 计算机中专自考,中专怎么自考大专
  11. springboot禁止使用事务_springboot 中使用事务
  12. oracle及mysql错误记录
  13. 大数据新算法在个人信用风险评估模型中使用效果的评估
  14. Dynamics CRM 系统自定义部分的语言翻译
  15. 蓝牙时断时续很让人恼火,该如何解决(主要针对Windows 10)
  16. 猜数字小游戏(网页版)
  17. java geometry mysql_Java Geometry空间几何数据的处理应用
  18. 爱因斯坦场方程之Reissner-Nordstrom(电磁真空)解
  19. Java项目毕业设计:基于springboot+vue的校园新闻网站
  20. iPhone网页显示不全(被遮挡)怎么办?

热门文章

  1. Ubuntu 18.0安装教程
  2. C语言 | 编程实现1
  3. Matlab | Matlab从入门到放弃(4)——样本均值
  4. linux下的普通文件的属性,linux下文件目录和属性
  5. VS2010 手动为控件添加事件处理函数
  6. python 一次性定时器_python 定时器每天就执行一次的实现代码
  7. c语言请编写函数mygets,c语言中请编写函数mygets和myputs,其功能分别与gets与puts相同,函数中用getchar和putchar读入和输出字符...
  8. mysql避免回环复制_【20181204】 MySQL 双主复制是如何避免回环复制的
  9. 【科普】让人头秃的理论:什么是“奥卡姆剃刀”原理?
  10. 【学术相关】考研初试成绩出来了,然后呢...选导师!