正则表达式----IP地点合法性判断

打印 上一主题 下一主题

主题 784|帖子 784|积分 2352

一、正则表达式常见匹配字符快速回顾

符号描述.匹配处换行符\n之外恣意1个字符[]匹配[]中恣意一个\d一个0-9数字\D匹配非数字\w匹配单词字符:a-z、A-Z、0-9\W匹配非单词字符\s匹配空格、tab健\S匹配非空格,tab健   常用的匹配规则-匹配字符数量
  

  • 匹配前一个字符出现0次大概无数次
  • 匹配前一个字符出现1次大概无数次
符号描述?匹配前一个字符出现0次大概1次{m}匹配前一个字符出现m次{m,}匹配前一个字符出现至少m次{n,m}匹配前一个字符出现n-m次^匹配字符串开头$匹配字符串末了|或(ab)将括号中字符作为一个分组 二、 实战:正则表达式判断IPv4地点合法性

   python正则表达式处理re.match()函数,可以对字符举行匹配,查找的位置是从指定的位置开始一直往后找,返回第一个符合规则的对象,如果开始位置不符合匹配队形则返回None。而如果从起始位置开始没有匹配乐成,即便其他部分包含必要匹配的内容,re.match()也会返回None。
忘记的同学可以去看上篇文章解说
  

  • 问题:假设有一个IP地点,如ip = ‘10.10.10.10’,怎样检测IPV4的IP地点格式是否精确?
           分析
        IPV4地点分四段,分别为:(1-255).(0-255).(0-255).(0-255)
        第一段分析,有以下5种环境:
        1-91位数,由于是第一段,因此不能取0,1-9恣意取10-991开头两位数,个位数0-9恣意取100-1991开头三位数,十位数和个位数0-9恣意取200-2492开头三位数,当十位数为0-4时(即250以内),个位数0-9恣意取250-2552开头三位数,当十位数为5时(大于等于250),个位数只能取0-5    这五种环境对应的正则如下:
        1-9[1-9]10-99[1-9]\d100-1991\d\d200-2492[0-4]\d250-25525[0-5]    组合起来就是:
       
    1. [1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    复制代码
       加个小括号组合起来:
       
    1. ([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    2. )
    复制代码
       后三段环境均一样,有以下5中环境:
        0-91位数,0-9恣意取,唯一与第一段有区别的地方10-991开头两位数,个位数0-9恣意取100-1991开头三位数,十位数和个位数0-9恣意取200-2492开头三位数,当十位数为0-4时(即250以内),个位数0-9恣意取250-2552开头三位数,当十位数为5时(大于等于250),个位数只能取0-5    这五种环境对应的正则如下:
        0-9\d10-99[1-9]\d100-1991\d\d200-2492[0-4]\d250-25525[0-5]    组合起来就是
       
    1. \d|\[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    复制代码
       第四段最后必要加上末了符号:$。表示停止匹配。
        最终结果:
    1. import reip1 = '100.10.10.253'print(re.match(r'([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    2. ).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$',ip1))*******************print*********************************<re.Match object; span=(0, 13), match='100.10.10.253'>ip2 = '0.10.10.253'print(re.match(r'([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]
    3. ).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]).(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$',ip2))*******************print*********************************None
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表