這里講的是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)))