正则表达式,用于查找一行的最后一个整数

时间:2012-08-22 21:00:40

标签: php regex preg-match

我有这段代码:

23561623:page[1].12 
6461620:page[3].7 
43631619:page[1].1 
265461620:page[6].2 
21461621:page[1].10 

我必须得到最后一个整数,如12,7,1,2,10等。有人可以帮助写一个preg_match所以我可以得到它吗?

提前致谢, 幸运

2 个答案:

答案 0 :(得分:7)

$str = '23561623:page[1].12';
$parts = explode('.', $str);
echo $parts[1];

如果你必须使用preg_match(即使这里没有必要):

$str = '23561623:page[1].12';
$matches = array();

if (preg_match('/\.(\d+)$/', $str, $matches)) {
    echo $matches[1];
}

答案 1 :(得分:0)

其他答案似乎假设总会有一段时间;可能会有,但下面没有做出这样的假设。

如果你有一个这样的字符串块,你可以运行这个正则表达式代码:

if (preg_match_all('/(\d+)\s*$/m', $str, $matches)) {
    // $matches[1] contains all the integers
}

它匹配最后一组数字((\d+)),可选地后跟空格(\s*),直到行结束($)。 /m修饰符使$表现为行尾而不是主题结束。