我有这段代码:
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所以我可以得到它吗?
提前致谢, 幸运
答案 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
修饰符使$
表现为行尾而不是主题结束。