Php:正则表达式在冒号之前得到所有数字

时间:2014-07-29 16:12:56

标签: php regex

我有以下字符串:

$string = "16,1-5,22-27&22:1&4:3"

我想在冒号前获取所有数字并返回一个数组。所以对于给定的字符串,我会得到以下内容:

array(22,4)

3 个答案:

答案 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]);

RegEx Demo

答案 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