IP地址加掩码的正则表达式

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

解读:

  • 对于每个(25[0 - 5]|2[0 - 4]\d|[0 - 1]\d{2}|[1 - 9]?\d)部分:
    • 25[0 - 5]
      • 这部分用于匹配 250 - 255 这个区间的数字。25是固定的前缀,[0 - 5]表示匹配 0 - 5 中的任意一个数字,这样就可以匹配 250、251、252、253、254、255。
    • 2[0 - 4]\d
      • 用于匹配 200 - 249 这个区间的数字。2是百位数字,[0 - 4]表示十位数字可以是 0 - 4 中的任意一个,\d(等同于[0 - 9])表示个位数字可以是 0 - 9 中的任意一个。例如,200、201、239 等数字都可以被匹配。
    • [0 - 1]\d{2}
      • 用于匹配 000 - 199 这个区间的数字。[0 - 1]表示百位数字可以是 0 或者 1,\d{2}表示后面跟着两个数字(十位和个位),这两个数字可以是 0 - 9 中的任意一个。比如 000、001、099、100、199 等。
    • [1 - 9]?\d
      • 这部分有两种情况。当[1 - 9]?部分匹配 0 次时,也就是没有匹配到数字(这种情况适用于数字 0),然后\d匹配 0 - 9 中的任意一个数字,这样可以匹配 0 - 9 这些一位数;当[1 - 9]?部分匹配 1 次时,[1 - 9]匹配 1 - 9 中的任意一个数字,然后\d再匹配一个 0 - 9 中的任意一个数字,这样可以匹配 10 - 99 这些两位数。
  • \.(25[0 - 5]|2[0 - 4]\d|[0 - 1]\d{2}|[1 - 9]?\d)
    • \.部分是一个转义字符 “.”,因为在正则表达式中 “.” 是一个特殊字符,表示匹配除换行符之外的任意一个字符。这里使用转义字符\使得 “.” 就表示字符 “.” 本身,用于分隔 IP 地址的四个部分。后面的(25[0 - 5]|2[0 - 4]\d|[0 - 1]\d{2}|[1 - 9]?\d)和前面的部分一样,用于匹配 IP 地址的下一个部分。整个表达式重复四次,分别匹配 IP 地址的四个部分。
  • (?:[\/|\s](3[0 - 2]|2[0 - 9]|1[0 - 9]|\d))?部分:
    • (?:
      • 开始一个非捕获组,它把里面的内容作为一个整体看待,但不会单独捕获这个组的内容用于后续引用之类的操作。
    • [\/|\s] 
      • 匹配 “/” 或者空白字符(空格、制表符等),用来表示可能出现的分隔 IP 地址和掩码的符号。
    • (3[0 - 2]|2[0 - 9]|1[0 - 9]|\d)
      • ​​​​​​​用于匹配子网掩码的具体数字部分,和之前的含义一样。
    • )?
      • ​​​​​​​整体表示这个非捕获组内的内容(也就是分隔符及掩码部分)可以出现 0 次或者 1 次。这样即使没有写分隔符以及后面的掩码,也依然能够匹配成功,整个表达式就可以匹配单纯的 IP 地址或者 IP 地址加掩码的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值