是否有一种干净的方法让preg_replace只捕获字符串中的最后一串数字?我会传递'df14','asd32','5ds3'之类的东西,我希望它只返回'14','32'和'3'。
我会使用'/ \ D +(\ d +)/'如果数字总是前面只有非数字,但有时数字之前的字符串可以包含最后一系列数字之前的数字(如上面'5ds3'的情况)。但是,数字之前的字符串永远不会以数字结尾。
有什么想法吗?
答案 0 :(得分:1)
即使使用数组,它也能按预期工作。显示您拥有的数据
$test = array(
'23g1', 'g2', 'g34', 'g4', 'g5', '3mmo'
);
var_dump(preg_replace('/.*(\d+)?$/U', '$1', $test));
答案 1 :(得分:0)
你可以试试这个:
preg_match('/.*(\d+)$/',...);