1. IP段都表示一個字節,即只能在 0~255之間。
所以一個正確的IP應該是:(0~255).(0~255).(0~255).(0~255)
通過觀察可以發現可以將整個IP分為兩部分匹配,即:(0~255) 和 .(0~255) 3次
2. 0~255可以分兩部分匹配 0~199 和 200~255
a) 0~199 正則表達式為 [0-1]?\d{1,2}
- [0-1]? 表示匹配 0或1一次或零次
- \d 表示匹配任意一個十進制數字,即 0~9
- {1,2} 表示匹配上一個元素至少一次,最多兩次,這里就是 \d一次或兩次
b) 200~255 正則表達式為 2((5[0-5])|([0-4]\d)),又可以分為兩部分 200~249 和 250~255
- 2 表示必須以2開頭
- 5[0-5] 表示匹配 50~55 之間的數
- [0-4]\d 表示 00~49 之間的數
3. a) (0~255) 的正則表達式可以寫為 (2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2})
b) .(0~255) 的正則表達式可以寫為 \.((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))
c) .(0~255) 匹配3次的正則表達式可以寫為 (\.((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))){3}
4. 正則表達式為 ^((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))(\.((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))){3}$
- ^ 表示匹配字符串開頭
- $ 表示匹配字符串結尾