php从字符串中提取一些数字

php从字符串中提取一些数字,php,regex,Php,Regex,我有下一个字符串: generation_1_2 generation_2_8 generation_3_12 如何将此字符串中的数字放入变量中? 例如: $digit1[0] is 1. $digit1[1] is 2. $digit1[1] is 3. $digit1[0] is 2. $digit1[1] is 8. $digit1[2] is 12. 谢谢您的帮助。如果要提取尾随数字,可以执行以下操作: function ret_int($str){ return array

我有下一个字符串:

generation_1_2
generation_2_8
generation_3_12
如何将此字符串中的数字放入变量中? 例如:

$digit1[0] is 1.
$digit1[1] is 2.
$digit1[1] is 3.
$digit1[0] is 2.
$digit1[1] is 8.
$digit1[2] is 12.

谢谢您的帮助。

如果要提取尾随数字,可以执行以下操作:

function ret_int($str){
    return array_slice(explode('_', $str), 1);
}
if(preg_match_all('/(\d+)$/m',$input,$m)){
   // $m[1] will have all the matches.
}

编辑:

回答已编辑的问题以提取两个数字:

$digit = array();
if(preg_match_all('/(\d+)\D*(\d+)$/m',$input,$m)) {
        $digit = array_merge($m[1],$m[2]);
}

如果您只想从字符串中提取数字,可以像fabrik编写的那样使用它们(
$arr=array\u slice(explode(“,$str),1);

然后使用,将它们转换为如下整数:
$int\u a=intval($str\u a,10)
其中
$str\u a
是数组中的一个字符串
$arr

,不知何故,您的“下一个字符串”与示例不匹配。请指定。它应该是“$digit1[2]是3”,即它“$digit2[1]是8”?