美文网首页
正则表达式匹配合法网络ip

正则表达式匹配合法网络ip

作者: thepoy | 来源:发表于2019-12-08 17:31 被阅读0次

1、在写正则表达式前,需要知道什么是合法的网络ip(不识别本地和回路):

  • ip地址由四个数字组成,每个数字之间用"."隔开
  • 第一个数字不能为255,255为广播地址段
  • 第一个数字不能为0,0为本地主机
  • 第一个数字不能为127,127用于回路测试
  • 其他三个数字为0-255之间的数字

2、写第一个数字的规则

  • 单位数,不能为0 [1-9]
  • 两位数,10-99
    • 单位数和两位数可以合并表示为 [1-9]\d?
  • 三位数
    • 1开头 1[013456789]\d|1\d[012345689]
    • 2开开头
      • 25[0-4]
      • 2[0-4]\d
        所以第一个数字的表达式为:
[1-9]\d?|1[013456789]\d|1\d[012345689]|2[0-4]\d|25[0-4]

3、其余数字

同样分为一位数、二位数、三位数

  • 一位数,[0-9]
  • 二位数,[1-9]\d
  • 三位数,1[\d]{2}, 2[0-4]\d, 25[0-5]
[0-9]|[1-9]\d?|1\d{2}|2[0-4]\d|25[0-5]

4、完整表达式

需要用?:让每个()内的分组表达式匹配的子字符串不被捕获,否则最终得到的结果将是由若干个字符串组成的元组,而不是ip地址,有兴趣的可以自己测试去掉?:后运行代码

a = '10.2.2.22'
result = re.findall(r'^(?:[1-9]\d?|1[013456789]\d|1\d[012345689]|2[0-4]\d|25[0-4])(?:\.(?:[0-9]|[1-9]\d?|1\d{2}|2[0-4]\d|25[0-5])){3}\Z', a)
print(result)
# ['10.2.2.22']

相关文章

  • 正则表达式匹配合法网络ip

    1、在写正则表达式前,需要知道什么是合法的网络ip(不识别本地和回路): ip地址由四个数字组成,每个数字之间用"...

  • python正则表达式匹配合法IP

    闲着无聊,计划练习一下正则表达式,所以找了一个相对熟悉的问题--用正则表达式匹配合法的IP地址,个人觉得这个表达式...

  • python笔试面试项目实战2020百练7使用正则表达式判断IP

    使用正则表达式判断IP是否合法 有socket等库的方法已经实现了IP合法性的检查,这个是某外企(flexport...

  • Hiho 1289 403 Forbidden(微软编程题)

    题意 输入 ip 按顺序匹配规则,优先匹配前面的规则,如果没有规则可以匹配则视为合法。注意:掩码为 0 的时候表示...

  • 正则表达式

    正则表达式用于匹配字符串,通常用来判断用户输入数据是否合法。 正则基础: \d匹配一个数字:①`66\d`能成功匹...

  • 正则表达式(一)

    正则表达式是用于匹配字符串的模板.正则表达式就是创建一个特殊的字符串模板.支持的合法字符如表: String类提供...

  • WebRTC(二) NAT 穿越技术

    在真实的网络环境中,NAT(网络地址转换)技术随处可见,它是一种把内部私有网络地址(IP地址)转换为合法网络IP地...

  • ipv4合法性验证

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

  • Nginx 匹配规则

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

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

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

网友评论

      本文标题:正则表达式匹配合法网络ip

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