Chinaunix首页 | 论坛 | 博客
  • 博客访问: 357042
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 356
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-01 14:18
文章分类

全部博文(163)

文章存档

2020年(4)

2019年(5)

2018年(4)

2017年(15)

2016年(11)

2015年(10)

2014年(4)

2013年(8)

2012年(13)

2011年(23)

2010年(2)

2009年(16)

2008年(20)

2007年(13)

2006年(12)

2005年(3)

分类: Python/Ruby

2012-09-17 18:20:14

IP地址分为4段,以点号分隔。要对IP地址进行匹配,首先要对其进行分析,分成如下部分,分别进行匹配:
 

第一步:地址分析,正则初判   点击(此处)折叠或打开

  1. 1、0-9 \d 进行匹配
  2. 2、10-99 [1-9]\d 进行匹配
  3. 2、100-199 1\d\d 进行匹配
  4. 3、200-249 2[0-4]\d 进行匹配
  5. 4、250-255 25[0-5] 进行匹配

第二步:正则合并    点击(此处)折叠或打开

  1. 基本表达式可以合并为:       \d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
  2. 前三部分正则表达式合并为:   ((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}
  3. 前三部分加上最后一部分合并为:((\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])

第三步:进一步合并   点击(此处)折叠或打开

  1. 可以进一步合并为:((([1-9]?|1\d)\d|2([0-4]\d|5[0-5]))\.){3}(([1-9]?|1\d)\d|2([0-4]\d|5[0-5]))

第四:注意事项     点击(此处)折叠或打开

  1. 该正则表达式有两个缺陷:
  2. 0.0.0.0不能判断
  3. 255.255.255.255不能正确判断
  4. 这个问题需要使用其他代码进行辅助解决




 


                    
阅读(24998) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~