Для числа от 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
И для списка IPv4 CIDR, как "10.0.0.0/16", "192.168.1.1/32"
я использую это регулярное выражение:
^("(([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
для смеха.