对于0到255之间的数字,我使用此正则表达式:
(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))
上面的正则表达式将匹配从0到255的整数,但不匹配256。
因此,对于IPv4,我使用以下正则表达式:
^(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})$
它是这种结构:^(N)((\.(N)){3})$
其中N是用于匹配0到255之间的数字的正则表达式。
此正则表达式将匹配IP,如下所示:
0.0.0.0
192.168.1.2
但以下内容除外:
10.1.0.256
1.2.3.
127.0.1-2.3
对于IPv4 CIDR(无类域间路由),我使用此正则表达式:
^(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))$
它是这种结构:^(N)((\.(N)){3})\/M$
其中N是用于匹配0到255之间的数字的正则表达式,而M是用于匹配0到32之间的数字的正则表达式。
该正则表达式将匹配CIDR,如下所示:
0.0.0.0/0
192.168.1.2/32
但以下内容除外:
10.1.0.256/16
1.2.3./24
127.0.0.1/33
对于像"10.0.0.0/16", "192.168.1.1/32"
我这样的正则表达式的IPv4 CIDR列表:
^("(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))")((,([ ]*)("(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))((\.(([0-9])|([1-9][0-9])|(1([0-9]{2}))|(2[0-4][0-9])|(25[0-5]))){3})\/(([0-9])|([12][0-9])|(3[0-2]))"))*)$
它的结构如下:^(“C”)((,([ ]*)(“C”))*)$
其中C是用于匹配CIDR的正则表达式(如0.0.0.0/0)。
此正则表达式将匹配CIDR列表,如下所示:
“10.0.0.0/16”,”192.168.1.2/32”, “1.2.3.4/32”
但以下内容除外:
“10.0.0.0/16” 192.168.1.2/32 “1.2.3.4/32”
也许它会变得更短,但是对我来说,我很容易理解它。
希望能帮助到你!
ping 2130706433
并ping 127.1
咯咯地笑。