美文网首页
匹配ipv4地址的正则表达式

匹配ipv4地址的正则表达式

作者: tinychen | 来源:发表于2021-03-03 14:16 被阅读0次
image

本文主要介绍使用正则表达式匹配ipv4地址。

1、粗犷匹配

比较粗犷的匹配方法,直接匹配四组使用了.进行分隔的数字

\d+\.{3}\d+

但是这样容易把不是ip的也匹配进去,比如说8888.888.88.8这样的也是符合规则的,所以想要尽可能的准确,我们就要进行精细的匹配。

2、精准匹配所有ip

首先我们要确定ipv4地址的范围是0.0.0.0255.255.255.255。然后就使用正则表达式逐个字进行匹配。

首先要匹配0-255这256个数字,由于正则表达式在这里不能直接使用数值大小进行匹配,并且需要尽可能地精确控制数值范围,所以我们将其分为0-910-99100-199200-249250-255一共五个部分:

?:                     # 非获取匹配,只匹配但是不获取
(?:1[0-9][0-9]\.)       # 100-199
(?:2[0-4][0-9]\.)       # 200-249
(?:25[0-5]\.)           # 250-255
(?:[1-9][0-9]\.)        # 10-99
(?:[0-9]\.)             # 0-9

注意这五个分组都是或|关系,前面三个部分都是0-255加上一个点.,最后的是没有点的.,所以前面的执行三次匹配,最后再加上没有点.的一次,正好就能匹配所有的IP地址

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

3、匹配局域网IP地址

局域网ip地址分为三个大的网段,分别是10.x.x.x172.16.0.0—172.31.255.254192.168.x.x,具体匹配思路和上面一样

10.x.x.x

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

172.16.0.0—172.31.255.254

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

192.168.x.x

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

匹配所有局域网IP地址

(?:(?:10(?:(?:\.1[0-9][0-9])|(?:\.2[0-4][0-9])|(?:\.25[0-5])|(?:\.[1-9][0-9])|(?:\.[0-9])))|(?:172(?:\.(?:1[6-9])|(?:2[0-9])|(?:3[0-1])))|(?:192\.168))(?:(?:\.1[0-9][0-9])|(?:\.2[0-4][0-9])|(?:\.25[0-5])|(?:\.[1-9][0-9])|(?:\.[0-9])){2}

相关文章

  • 匹配ipv4地址的正则表达式

    本文主要介绍使用正则表达式匹配ipv4地址。 1、粗犷匹配 比较粗犷的匹配方法,直接匹配四组使用了.进行分隔的数字...

  • 匹配IPv4地址的正则表达式

    本文虽然给出了匹配IPv4地址的正则表达式,但是更重要的是提供写正则表达式的一种思路。有时候使用程序而不是正则表达...

  • ipv4合法性验证

    ipv4:合法的ipv4协议的ip地址满足 1-255.0-255.0-255.0-255 因此可以使用正则表达式...

  • js常用正则

    匹配邮箱: 匹配中文: 匹配时间: 匹配IP(IPV4): 匹配身份证号码: 匹配手机号:

  • 正则表达式及常用应用

    1,获取地址栏参数 常用正则表达式大全 匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配 中文标点符...

  • 常用的正则表达式收集

    如果发现有不能匹配的,请及时告知分享一个正则表达式匹配测试的网站regex101 很好用了 1、匹配mac地址 M...

  • Nginx 匹配规则

    无 :默认匹配,普通匹配 = :精确匹配 ~* :匹配正则表达式,不区分大小写 ~ :匹配正则表达式,区分大小写 ...

  • 2019.8.15分享:正则表达式字符匹配攻略

    一、正则表达式 正则表达式是匹配模式,要么匹配字符,要么匹配位置。 这次分享主要将提下正则表达式字符匹配 • 两种...

  • 2020-07-29 IP 基础知识“全家桶”——「 IPv6

    IPv4 的地址是 32 位的,大约可以提供 42 亿个地址,但是早在 2011 年 IPv4 地址就已经被分配完...

  • python与正则表达式 2020-01-02(未经允许,禁止转

    正则表达式 正则表达式与程序语言无关。正则表达式做匹配实际上就做3件事:【字符匹配】+【次数匹配】+【逻辑匹配】下...

网友评论

      本文标题:匹配ipv4地址的正则表达式

      本文链接:https://www.haomeiwen.com/subject/dbcmfltx.html