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

分析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:这个可以继续分拆,这样写起来更加简单明了.
    • 0-9:       一位数,个位是0~9,用正则表达式可以写成:\d
    • 10-99:   二位数,十位是1~9,个位是0~9,用正则表达式可以写成:[1-9]\d
    • 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}重复得到,得到IP地址的正则表达式:

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

IPv4正则表达式匹配的更多相关文章

  1. [LeetCode] Regular Expression Matching 正则表达式匹配

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  2. 正则表达式匹配/data/misc/wifi/wpa_supplicant.conf的WiFi名称与密码

    正则表达式匹配/data/misc/wifi/wpa_supplicant.conf的WiFi名称与密码: String regex_name="ssid=\"(.*?)\&quo ...

  3. 在Visual Studio中使用正则表达式匹配换行和批量替换

    系统环境:Windows 8.1 Enterprise Update 2 x64 开发环境:Mircosoft Visual Studio Ultimate 2013 Update 2 RC 问题:如 ...

  4. .NET正则表达式匹配Silverlight

    这是一个.NET正则表达式匹配工具的Silverlight 在页面中加入以下代码就可以了: <"> <param name="source" value ...

  5. Flex的正则表达式匹配速度与手工代码的比较

    flex是一个词法分析器生成器,它是编译器和解释器编程人员的常用工具之一.flex的程序主要由一系列带有指令(称为动作代码)的正则表达式组成.在匹配输入时,flex会将所有的正则表达式翻译成确定性有穷 ...

  6. Java/Js下使用正则表达式匹配嵌套Html标签

    转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里 ...

  7. Java正则表达式匹配例子

    Java正则表达式匹配例子 package com.ibm.test; import java.util.regex.Matcher; import java.util.regex.Pattern; ...

  8. *****正则表达式匹配URL

    最近将匹配URL的正则替换了下 之前的是: ((http|ftp|https)://)(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3 ...

  9. bash 正则表达式匹配,一行文本中 “包含 ABC” 并且 “不包含 XYZ”

    bash 正则表达式匹配,一行文本中  “包含 ABC”  并且  “不包含 XYZ” A文件: XXXX ABC XXX4444444444444444XXXX ABC XXX XYZ6666666 ...

随机推荐

  1. log模块和report模块

    这两个模块不需要管,我们生成的log和report直接添加到这里就好

  2. Hive之GROUP BY详解

    一,GROUP BY 执行理解 先来看下表1,表名为test: 表1 执行如下SQL语句: SELECT name from test GROUP BY name ;   你应该很容易知道运行的结果, ...

  3. 个人知识管理系统Version1.0开发记录(12)

    最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...

  4. Tensorflow学习笔记二

    现在来开始安装Tensorflow吧 Tensorflow有两种模式, 一种GPU支持, 另外一种仅CPU支持 虚拟机仅有CPU支持, 那就第一种模式吧 有4种途径去安装 virtualenv &qu ...

  5. Nginx笔记02-nginx常用参数配置说明

    nginx的主配置文件是nginx.conf,这里主要针对这个文件进行说明 1.主配置文件nginx.conf   2.nginx配置文件的结构 从上面的配置文件中我们可以总结出nginx配置文件的基 ...

  6. Windows 10 安装 Docker

    下载Docker For Windows 地址:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.ex ...

  7. New Concept English Two 15 37

    listening speaking reading writing and translating $课文35  捉贼! 355. Roy Trenton used to drive a taxi. ...

  8. PostgreSQL psql中如何查看快捷功能的对应函数

    在psql中,我们可以通过一系列的的快捷命令查看数据库元素,如:\d 查看当前搜索路径下的表,那么内部用到的SQL语句是什么呢,可以通过命令来设置是否打印出来: apple=# \set ECHO_H ...

  9. Android GPS GPSBasics project hacking

    一.参考源码: GPS Basic Example - Android Example http://androidexample.com/GPS_Basic__-__Android_Example/ ...

  10. 20155226 2016-2017-2 《Java程序设计》第8周学习总结

    20155226 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志 java.util.logging包提供了日志功能相关类与接口,使用日志的 ...