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])
网友评论