-1

我有一个字符串线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.

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

在此先感谢并为我的英语不好感到抱歉。

4

2 回答 2

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
于 2013-11-13T10:33:02.057 回答
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+ ,第二个冒号来自 | 字符。

于 2013-11-13T10:38:39.200 回答