面试被问到
你能写一个正则表达式来表示 IP 地址吗
我回去后想了一下,感觉自己总写得不对
这个有没有大佬教下,谢谢!
1
KamenReborn 2020-05-21 15:38:21 +08:00 via Android
这,简单正则还是能写的,复杂的就要查手册了,反正那些复杂语法记不住,学一次忘一次
|
2
zxc1234 OP @KamenReborn 面试就要求你能写啊
|
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}
不包对 |
4
zpfhbyx 2020-05-21 15:42:37 +08:00
|
5
imn1 2020-05-21 15:44:12 +08:00
ipv4 我可以现写(也是要想的,不是随手),ipv6 不行,因为我还没完全搞清字串规范
ipv4 反正就是按位置逐个判断而已,难点只是 1 位 2 位还是 3 位数字 |
6
marcong95 2020-05-21 15:46:13 +08:00
这种东西其实不难,只是需要耐心
(\d{1,2} |[01]\d |2([0-4]\d |5[0-5] ) ) <上面那一坨>(\.<上面那一坨>){3} |
7
usboy 2020-05-21 16:10:31 +08:00
只有我在咸鱼找人代写嘛 (:
|
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}$
|
9
Telegram 2020-05-21 16:18:46 +08:00
@usboy #7 正则这个东西现用现查现写就行了。写出一个符合自己使用的很简单,但是要考虑各种情况,写的完美,就比较困难了
|
11
rogwan 2020-05-21 16:38:23 +08:00 via iPhone
正则写不好也是能出大问题的,一般只敢手写简单的正则用用
|