IP地址的正则表达式写法

这里讲的是IPv4的地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值。

将0-255用正则表达式表示,可以分成一下几块来分别考虑:

取值区间

特点

正则写法

可合并的写法

可合并的写法

可合并的写法

0-9

一位数,只有个位,取值是0~9

\d

[1-9]?\d

(1\d{2})|([1-9]?\d)

(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))

 

10-99

两位数,十位取值1-9,个位取值是0~9

[1-9]\d

100-199

三位数,最高位取值为1,十位取值0-9,个位取值0-9

1\d{2}

 -

200-249

三位数,最高位取值为2,十位取值0-4,个位取值0-9

2[0-4]\d

 -

 -

250-255

三位数,最高位取值为2,十位取值5,个位取值0-5

25[0-5]

 -

 -

IP地址格式可表示为:XXX.XXX.XXX.XXX,XXX取值范围是0-255,前三段加一个.重复了三次,在与最后一段合并及组成IP地址的完整格式。

所以IP地址的正则表示法如下:

((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))