1

我有这个代码:

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 以便我得到它吗?

在此先感谢,幸运

4

2 回答 2

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];
}
于 2012-08-22T21:02:16.877 回答
0

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

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

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

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

于 2012-08-22T23:12:57.067 回答