我有以下字符串:
$string = "16,1-5,22-27&22:1&4:3"
我想在冒号前获取所有数字并返回一个数组。所以对于给定的字符串,我会得到以下内容:
array(22,4)
答案 0 :(得分:4)
您可以在preg_match_all
中使用这个基于前瞻性的正则表达式:
\d+(?=:)
<强>代码:强>
$str = "16,1-5,22-27&22:1&4:3";
preg_match_all('/\d+(?=:)/', $str, $matches);
print_r($matches[0]);
答案 1 :(得分:0)
这种模式也没有任何问题,不需要使用前瞻:#(\d+):#
<?php
$string = "16,1-5,22-27&22:1&4:3";
preg_match_all('#(\d+):#', $string, $out);
print_r($out[1]);//Array ( [0] => 22 [1] => 4 )
?>
答案 2 :(得分:0)
$string = "16,1-5,22-27&22:1&4:3";
preg_match("/(\d)+:/", $string, $results);
print_r($results); // you will see what you want