先亮结论,不想看分析的可以点个赞直接溜!

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

下面是合理性分析:

IPv4地址的格式是nnn.nnn.nnn.nnn,其中每一个nnn为0~255之间的整数。

\b匹配一个单词边界,即字与空格间的位置。比如\bCha可匹配Chapter,而ter\b也可以匹配Chapter

剩下的内容是(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]),其中反复出现的一个子结构是25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9],它匹配的是0~255。
[0-9]表示0~9的任一整数,[01]表示0或1,|表示或,而?表示出现0次或1次。
所以这个子结构可以解释为:0~9或10~99或100~199或200~255,综合起来就是0~255。
值得注意的是毕竟不能把1表示为001,所以这里的处理稍显复杂。

假设用A代指25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9],剩下的内容变成了(?:(?:A)\.){3}(?:A)
(?:)是一个结构,表示非捕获分组。
()表示捕获分组,()会把每个分组里的匹配的值缓存,使用$n(n是一个整数,表示第n个捕获组的内容)可用。
但使用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前(即(?:))来消除这种副作用。

.表示除换行符外的任何字符,所以需要加反斜线以转义点号,即为\.
因此(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.)的含义是一个0~255的整数加上一个点号。

{3}表示将之前的内容重复3次,即将一个0~255的整数加上一个点号这个内容重复3次。
最后再补上一个0~255的整数,即为所求。

【正则表达式】IPv4地址的正则匹配相关推荐

  1. html正则表达式识别网址,JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)...

    本文实例讲述了JS正则匹配URL网址的方法.分享给大家供大家参考,具体如下: 最强的匹配网址-url的正则表达式:匹配www,http开头的一切网址 直接插入正则表达式: [a-zA-Z0-9][-a ...

  2. php正则匹配是否为url地址,php正则匹配网址-正则php-php正则匹配url地址

    php正则表达式 正则匹配网址是否带http:// https:// if(preg_match("/\x20*https?\:\/\/.*/i","",$m) ...

  3. 通过百度地图模糊查询获取详细地址?正则匹配

    要求:获取地址的详情? 地图:百度地图 准备:你的AK(地址:http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5),只需要注册申请就可 ...

  4. 正则表达式的使用,python正则匹配一个话题标签

    在线实时匹配正则表达式的网站在此,很好用 [#].*?\s import re print(re.findall(r"[#].*?\s",txt)) 就全都提取出来了 接着把这些h ...

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

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

  6. 正则匹配ipv4_IPV4和IPV6正则表达式的深入讲解

    IPV4和IPV6正则表达式的深入讲解,地址,写法,正则,字段,第一个 IPV4和IPV6正则表达式的深入讲解 易采站长站,站长之家为您整理了IPV4和IPV6正则表达式的深入讲解的相关内容. IPV ...

  7. python正则匹配空格+数字+空格_如何批量添加中文和英文数字之间的空格?用正则表达式吧...

    1.中文与英文数字混合使用,排版有规范 写作中,我们经常遇到以下中文与英文.数字混用的情况. 我自学python编程,是在xue.cn上进行的.时耗方面,基础功仅需50多小时,加上很多实战,包括初步运 ...

  8. 使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名

    目录 (原创不易,你们对阿超的赞就是阿超持续更新的动力!) (以免丢失,建议收藏~~~) ------------------------------------------------------- ...

  9. 常用正则表达式-IP地址

    常用正则表达式-IP地址 1. IPv4地址 1. IPv4地址定义 参考百度百科 IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(即2的32次方)个地址. 通常使用点 ...

最新文章

  1. 常考题 | IoU 计算
  2. 唠唠SE的集合-10——Collections工具类
  3. HTTP 304 的理解
  4. (转)Mat, vectorpoint2f,Iplimage等等常见类型转换
  5. 记录第一次部署servlet实例
  6. Java线程:线程交互
  7. php 和jsp,jsp和php哪个好?jsp和php的简单比较
  8. workbook加载文件路径_【Python】文件重命名(按照Excel清单)
  9. python判断奇数_python 中x%2 x1 判断偶数奇数 性能对比
  10. oracle 行数大于一时,oracle – PL / SQL ORA-01422:精确的提取返回超过请求的行数
  11. 1小时搞懂设计模式之工厂模式(简单工厂)
  12. 【报告分享】2020年教育行业OMO模式转型现状研究报告.pdf(附下载链接)
  13. am相干解调matlab文档,AM调制与相干解调
  14. CVE-2022-1292漏洞修复
  15. Mysql创建用户与赋权限操作
  16. 【AI简报20210611期】Arm v9架构来啦、开源实战教你实现文字识别!
  17. 阿里云国际版代充-阿里云无影云桌面是什么?
  18. AUC的置信区间和两个AUC的差异性比较
  19. mac时间机器的使用
  20. python开发语音录入_基于python实现语音录入识别代码实例

热门文章

  1. #前端# 解决前端页面滑动不顺畅的问题
  2. 基于百度AI+jquery-webcam+servlet实现人脸识别登录,兼容各主流浏览器
  3. (转)你真的会写单例模式吗——Java实现
  4. MySql数据库表类型MYISAM与InnoDB的区别
  5. Commerce Server 2002 Starter Site and 2006 overview
  6. java吃货联盟app讲解_吃货联盟订餐系统——JAVA实现
  7. mysql 排名_学会在MySQL中实现Rank高级排名函数,所有取前几名问题全部解决.
  8. 怎样判断电饭锅温度传感器的好坏?_空调温度传感器的作用与检测。
  9. 意大利_【解读】去意大利留学,一定要学意大利语吗?意大利语难吗?
  10. Spring事务详解与使用