V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zxc1234

关于正则表达式

  •  
  •   zxc1234 · May 21, 2020 · 2190 views
    This topic created in 2177 days ago, the information mentioned may be changed or developed.

    面试被问到

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

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

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

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

    ipv4 反正就是按位置逐个判断而已,难点只是 1 位 2 位还是 3 位数字
    marcong95
        6
    marcong95  
       May 21, 2020
    这种东西其实不难,只是需要耐心

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

    <上面那一坨>(\.<上面那一坨>){3}
    usboy
        7
    usboy  
       May 21, 2020
    只有我在咸鱼找人代写嘛 (:
    mainjzb
        8
    mainjzb  
       May 21, 2020
    ^(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  
       May 21, 2020
    @usboy #7 正则这个东西现用现查现写就行了。写出一个符合自己使用的很简单,但是要考虑各种情况,写的完美,就比较困难了
    Telegram
        10
    Telegram  
       May 21, 2020
    @mainjzb #8 这个我感觉是标准答案了
    rogwan
        11
    rogwan  
       May 21, 2020 via iPhone
    正则写不好也是能出大问题的,一般只敢手写简单的正则用用
    zxc1234
        12
    zxc1234  
    OP
       May 22, 2020
    @marcong95 大佬,能稍微解释下吗,看不懂
    zxc1234
        13
    zxc1234  
    OP
       May 22, 2020
    @mainjzb 大佬,能稍微解释下?看不懂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3468 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    ♥ Do have faith in what you're doing.