联盟IP地址和端口(regexp)

时间:2013-11-13 10:31:31

标签: php regex

我有一个字符串行2h 2m 202.29.216.236 3128 flag Thailand

$string = preg_replace("/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(\s+\d{2,4}\s+)/", "$1:$2", $string);

我需要得到这样的IP地址:202.29.216.236:3128。

但是我的代码执行了此操作:109.197.92.60:: 8080

我不明白空格键和两个冒号在哪里。

提前致谢,抱歉我的英语不好。

2 个答案:

答案 0 :(得分:4)

为什么不使用explode()

<?php
$str="2h 2m 202.29.216.236 3128 flag Thailand";
$str=explode(' ',$str);
echo $str[2].":".$str[3];//202.29.216.236:3128

答案 1 :(得分:0)

尝试

$string = preg_replace("/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s+(\d{2,4})/", "$1:$2", $string);

空间来自第二个参数中的 \ s + ,以及来自第二个参数的第二个冒号。炭。