如何在PHP中获取字符串中的最后一个数字?

时间:2012-09-25 19:08:21

标签: php regex

如何为23获取1而不是$lastnum1

$text = "1 out of 23";
$lastnum1 = $this->getEval(eregi_replace("[^* out of]", '', $text));

6 个答案:

答案 0 :(得分:22)

你可以这样做:

$text = "1 out of 23";
if(preg_match_all('/\d+/', $text, $numbers))
    $lastnum = end($numbers[0]);

答案 1 :(得分:3)

$text = "1 out of 23";
$ex = explode(' ',$text);
$last = end($ex);

如果你想确定最后一个是数字

if (is_numeric(end($ex))) {
    $last = end($ex);
} 

答案 2 :(得分:1)

使用preg_match将值提取到$matches

preg_match("/([0-9]+) out of ([0-9]+)/", $text, $matches);

答案 3 :(得分:1)

$text = '1 out of 23';
preg_match('/\d+ out of (\d+)/', $text, $matches);
$lastnum1 = $matches[1];

答案 4 :(得分:1)

如果格式相同,为什么不爆炸字符串并转换最后一个?

<?php
$text = "1 out of 23";
$words = explode(" ",$text);
$lastnum = (int)array_pop($words);

答案 5 :(得分:1)

另一种方法:

$text = "1 out of 23";
preg_match('/(\d+)\D*$/', $text, $m);
$lastnum = $m[1];

这将匹配字符串中的最后一个数字,即使它后跟非数字。