首页 > 试题广场 >

写出判断一个IP地址是否为局域网地址的正则表达式

[问答题]
写出判断一个IP地址是否为局域网地址的正则表达式
已检测192.168.999.999 判断为正确
发表于 2023-03-11 16:09:22 回复(1)
\d{1,3} : 匹配1到3个数字,可能会匹配000、999这样的数字,但IP地址的每个部分范围是0-255。
改成:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) 匹配0-255
# 分解0-255的逻辑结构
250-255: 25[0-5]       # 固定前两位"25",第三位0-5
200-249: 2[0-4][0-9]   # 第一位"2",第二位0-4,第三位任意
100-199: 1[0-9]{2}     # 第一位"1",后两位任意
0-99:   [1-9]?[0-9]    # 可选非零首位 + 任意第二位

# 如果允许少量误报,可以简化
(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])
# 简化为:
(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)

发表于 2025-09-30 21:43:36 回复(0)