美文网首页
IP地址的正则匹配

IP地址的正则匹配

作者: 红烧排骨饭 | 来源:发表于2018-03-03 16:23 被阅读0次

    IP 地址分 4 段,每段的范围是 0-255

    1. 最简单的版本

    简单写,可以写成

    \d+.\d+.\d+.\d+
    

    但是这个不够精确,因为没有限制数字的个数,如果是 1234.1.23.4567 这样的也是成立的,但是这不是合法的 IP 地址

    2. 限制数字的个数

    \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}
    

    现在数字的个数限制了,但是数字的范围没有限制,比如 300.300.300.300 这样的虽然可以匹配,但不是合法的 IP 地址

    3. 限制数字的范围

    精确写法:

    范围 正则表达式
    0-99 [1-9]?\d
    100-199 1\d{2}
    200-249 2[0-4]\d
    250-255 25[0-5]

    可以用正则表达式的或操作符: | 和括号把以上这些表达式拼接起来

    可以得到下列的伪代码

    (0-99 | 100-199 | 200-249 | 250-255).(0-99 | 100-199 | 200-249 | 250-255).(0-99 | 100-199 | 200-249 | 250-255).(0-99 | 100-199 | 200-249 | 250-255)
    

    转换成正则表达式就是

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

    总结

    IP 地址的正则表达式是

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

    相关文章

      网友评论

          本文标题:IP地址的正则匹配

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