PHP-从正则表达式获取IP,聊天字符串

PHP-从正则表达式获取IP,聊天字符串,php,regex,string,Php,Regex,String,为简单起见,我有如下代码: $n = "Chan" $str = "2.231.42.3 Eric: ()24.231.23.2 " + $n + ":" 我试图做的是按名称对IP进行排序,(IP可以是下面代码中提到的任何IP,带有{1,3}regex) 我尝试过但不起作用的方法: preg_match("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} " . $n . "/", $str, $m); str_replace(" " . $n, "", $m[0], $

为简单起见,我有如下代码:

$n = "Chan"
$str = "2.231.42.3 Eric: ()24.231.23.2 " + $n + ":"
我试图做的是按名称对IP进行排序,(IP可以是下面代码中提到的任何IP,带有{1,3}regex)

我尝试过但不起作用的方法:

preg_match("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} " . $n . "/", $str, $m);
str_replace(" " . $n, "", $m[0], $r);
$ip = $r[0]; // Should return 24.231.23.2, Chan's IP

为什么我的代码不起作用?您如何解决这个问题?

如果您试图获得IP,那么这就足够了

$re = '/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/'; 
$str = ')24.231.23.2 Chan'; 

preg_match($re, $str, $matches);
print_r($matches)
输出

只配成龙

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?:Chan)

是否要从此字符串
)24.231.23.2 Chan获取ip
?您应该查看
str_replace()
上的手册;第四个参数返回替换的次数,而不是数组。您的代码无论如何都是错误的<代码>+是php中的数学加法
“+$n
将给你一个int,而不是字符串。修复了,我做了lot's JS这就是为什么Tanks,但我很抱歉没有告诉你,但是如果字符串看起来像:'2.231.42.3 Eric:()24.231.23.2 Chan',那么它应该返回Chan的ipth,然后只需添加一个空格,Chan像这样
(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})Chan
像这样添加它
(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}Chan)
不,它应该返回“24.231.23.2”,而不是“24.231.23.2 Chan”
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) (?:Chan)