V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxc1234
V2EX  ›  正则表达式

关于正则表达式

  •  
  •   zxc1234 · 2020-05-21 15:35:33 +08:00 · 1591 次点击
    这是一个创建于 1678 天前的主题,其中的信息可能已经有所发展或是发生改变。

    面试被问到

    你能写一个正则表达式来表示 IP 地址吗

    我回去后想了一下,感觉自己总写得不对

    这个有没有大佬教下,谢谢!

    13 条回复    2020-05-22 23:30:46 +08:00
    KamenReborn
        1
    KamenReborn  
       2020-05-21 15:38:21 +08:00 via Android
    这,简单正则还是能写的,复杂的就要查手册了,反正那些复杂语法记不住,学一次忘一次
    zxc1234
        2
    zxc1234  
    OP
       2020-05-21 15:39:56 +08:00
    @KamenReborn 面试就要求你能写啊
    Cooky
        3
    Cooky  
       2020-05-21 15:42:09 +08:00 via Android
    [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
    不包对
    zpfhbyx
        4
    zpfhbyx  
       2020-05-21 15:42:37 +08:00
    imn1
        5
    imn1  
       2020-05-21 15:44:12 +08:00
    ipv4 我可以现写(也是要想的,不是随手),ipv6 不行,因为我还没完全搞清字串规范

    ipv4 反正就是按位置逐个判断而已,难点只是 1 位 2 位还是 3 位数字
    marcong95
        6
    marcong95  
       2020-05-21 15:46:13 +08:00
    这种东西其实不难,只是需要耐心

    (\d{1,2}
    |[01]\d
    |2([0-4]\d
    |5[0-5]
    )
    )

    <上面那一坨>(\.<上面那一坨>){3}
    usboy
        7
    usboy  
       2020-05-21 16:10:31 +08:00
    只有我在咸鱼找人代写嘛 (:
    mainjzb
        8
    mainjzb  
       2020-05-21 16:15:32 +08:00
    ^(1?\d{1,2}|2([0-4]\d|5[0-5]))(\.(1?\d{1,2}|2([0-4]\d|5[0-5]))){3}$
    Telegram
        9
    Telegram  
       2020-05-21 16:18:46 +08:00
    @usboy #7 正则这个东西现用现查现写就行了。写出一个符合自己使用的很简单,但是要考虑各种情况,写的完美,就比较困难了
    Telegram
        10
    Telegram  
       2020-05-21 16:25:01 +08:00
    @mainjzb #8 这个我感觉是标准答案了
    rogwan
        11
    rogwan  
       2020-05-21 16:38:23 +08:00 via iPhone
    正则写不好也是能出大问题的,一般只敢手写简单的正则用用
    zxc1234
        12
    zxc1234  
    OP
       2020-05-22 23:30:06 +08:00
    @marcong95 大佬,能稍微解释下吗,看不懂
    zxc1234
        13
    zxc1234  
    OP
       2020-05-22 23:30:46 +08:00
    @mainjzb 大佬,能稍微解释下?看不懂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1290 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.