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. 这个问题需要使用其他代码进行辅助解决

使用正则表达式匹配IP地址的更多相关文章

  1. python中利用正则表达式匹配ip地址

    现在有一道题目,要求利用python中re模块来匹配ip地址,我们应如何着手? 首先能想到的是ip地址是数字,正则表达式是如何匹配数字的呢? \d或[0-9] 对于这个问题,不要一下子上来就写匹配模式 ...

  2. python 正则表达式匹配IP地址

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

  3. 正则表达式匹配IP地址

    '''首先分析ip地址的特征:255.255.255.255,前三位的数字处理基本一致 1位: 0-9              \d2位:10-99         [1-9]\d3位:100-19 ...

  4. C# 正则表达式 匹配IP地址

    \b(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\b

  5. 正则表达式通用匹配ip地址及主机检测

    在使用正则表达式匹配ip地址时如果不限定ip正确格式,一些场景下可能会产生不一样的结果,比如ip数值超范围,ip段超范围等,在使用正则表达式匹配ip地址时要注意几点: 1,字符界定:使用  \< ...

  6. Python 使用正则表达式匹配IP信息

    使用正则表达式匹配IP地址 .MAC地址 .网卡名称: #!/usr/bin/env python #-*- coding:utf-8 -*- import re from subprocess im ...

  7. 正则表达式检测IP地址与端口号是否合法

    正则表达式检测IP地址与端口号是否合法,代码如下: 正则表达式检测IP地址 public static bool CheckAddress(string s) { bool isLegal = fal ...

  8. python 利用正则表达式获取IP地址

    例:import retest= '$MYNETACT: 0,1,"10.10.0.9"'pattern =re.compile(r'"(\d+\.\d+\.\d+\.\ ...

  9. python匹配ip地址

    ip地址是用3个'.'号作为分隔符,分割4个数字,每个数字的取值在[0,255],一般日志文件中的ip地址都是有效的ip地址,不需要我们再去验证,因此,若从日志文件中提取ip,那么可以简单写成这样: ...

随机推荐

  1. 笔记-自己看Day20-待续

    1. 搭建环境 1)注释掉csrf 2)配置模板路径 'DIRS': [os.path.join(BASE_DIR,'templates')],  # BASE_DIR,代指当前目录. 3)配置静态文 ...

  2. hbase 安装笔记

    1.安装 在官方镜像站点下载hbase2.0,地址:https://www.apache.org/dyn/closer.lua/hbase/ 解压tar xzvf hbase-2.0.4-bin.ta ...

  3. JDBC连接Oracle

    数据库的操作是当前系统开发必不可少的开发部分之一,尤其是在现在的大数据时代,数据库尤为重要.但是你真的懂得Java与数据库是怎么连接的么? 先给大家一个数据库连接的简单实例: package com. ...

  4. 制作VR视频播放器

    最近VR火的不要不要的,但是综合起来,VR资源最多的还是全景图片和全景视频,今天在这里给大家简单介绍一下如何用Unity制作简单的VR视频播放器. 首先找到EasyMovieTexture这个插件,A ...

  5. Linux (四)其他一些服务的实现

    一.防火墙 防火墙根据配置文件/etc/sysconfig/iptables 来控制本机的“出.入”网络访问行为 其对行为的配置策略有四个策略表 1. 基础必备技能           查看防火墙状态 ...

  6. python基础----再看property、描述符(__get__,__set__,__delete__)

    一.再看property                                                                          一个静态属性property ...

  7. “Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常。-解决方法

    注释掉web/app.config中的:

  8. 【mysql】测试方案整理

    http://www.cnblogs.com/callhe/ https://www.digitalocean.com/community/tutorials/how-to-measure-mysql ...

  9. 手脱nSPack 1.3

    1.PEID查壳 nSPack 1.3 -> North Star/Liu Xing Ping 2.载入OD,pushad下面的call哪里使用ESP定律,下硬件访问断点,然后shift+F9运 ...

  10. TersorflowTutorial_MNIST数据集上简单CNN实现

    MNIST数据集上简单CNN实现 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 Tensorflow机器学习实战指南 源代码请点击下方链接欢迎加星 Tesorflow实现基于MNI ...