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}$ 

^ 表示匹配字符串开头
$ 表示匹配字符串结尾

更多推荐

正则表达式匹配IP地址