我想使用正则表达式来获取提供的IP地址中的所有范围。
示例:
192.168.0-255.1将返回0-255
192.168.0-255.1-10将返回0-255和1-10
192.168.0-10,42,80-200.1-10,128-255将返回0-10、80-200、1-10、128-255。
奖金:我还希望能够将这些表达式分成4个不同的表达式,以确定IP范围位于哪个八位字节中。 示例:192.168-180.0.1我想从一个表达式中获得168-180,该表达式寻找一个匹配,该匹配仅在子字符串的左边有一个句点,而在子字符串的右边是两个句点。
答案 0 :(得分:0)
像这样吗?
<?php
$input = <<<INPUT
192.168.0-255.1
192.168.0-255.1-10
192.168.0-10,42,80-200.1-10,128-255
INPUT;
preg_match_all("/[0-9]+\-[0-9]+/m", $input, $m);
print_r($m);
输出:
Array
(
[0] => Array
(
[0] => 0-255
[1] => 0-255
[2] => 1-10
[3] => 0-10
[4] => 80-200
[5] => 1-10
[6] => 128-255
)
)
[0-9] +1个或多个 -“-”越狱 [0-9] +1个或更多数字