php从一行中提取独立的数字


php extract standalone numbers from a line

我想从这行中提取独立的数字

4000123456789000/01/20/202/sssss/500 address/400 city/366

得到这个结果

4000123456789000/01/20/202/366

代码给我这个结果的问题

4000123456789000/01/20/202/500/400/366

我不想要带有文本的数字,也不想删除分隔符

使用preg_match_allstr_replace函数的解决方案(用于提取独立数字):

$str = "4000123456789000/01/20/202/sssss/500 address/400 city/366";
preg_match_all("/'/?'d+?('/|$)/i", $str, $matches);
$numbers_string = str_replace("//", "/", implode("", $matches[0]));
print_r($numbers_string);

输出:

4000123456789000/01/20/202/366

您可以将其分解为数组,然后提取相应的键。

 $str   =  '4000123456789000/01/20/202/sssss/500 address/400 city/366';
 $array = explode("/", $str);
 $formatted_array = array($array[0], $array[1], $array[2],  $array[3],end($array));
 echo implode("/", $formatted_array);