\s*time=\d+ms\s*TTL=\d+$
输出的不止一个time和TTL
分组就可以了
没思路 给个提示、
@as、: 这是C#版的,你改为PHP吧:
string a = "来自 61.155.169.116 的回复: 字节=32 time=11ms TTL=116"+
"来自 61.155.169.116 的回复: 字节=32 time=15ms TTL=116"+
"来自 61.155.169.116 的回复: 字节=32 time=10ms TTL=116"+
"来自 61.155.169.116 的回复: 字节=32 time=11ms TTL=116";
Regex reg = new Regex(@"\s*time=(?<time>\d+)ms\s*TTL=(?<ttl>\d+)");
var mc = reg.Matches(a);
if (mc.Count>0)
{
for (int i = 0;i<mc.Count;i++)
{
Console.WriteLine(mc[i].Groups["time"].Value + "\t" + mc[i].Groups["ttl"].Value);
}
}
@artwl: 貌似有点问题、你那样的代码不就等于说把那个time个固定死了 每次ping出来的time都是不一样的吧?
@as、: 至于怎么取到ping回来的值不是本问题的讨论范围吧,这里只是示例怎么用正则进行提取
@artwl: 现在发现只要两个函数就可以搞定了一个是eregi(),另外一个是explode()这两个就可以搞定,汗!之前怎么就没想到、