1

嗨,我想在最后一个实例之后获取所有数字 - in php

我的代码现在就是这样

$results = array();       
    $pattern = '/[^\-]*$/';       
    $pattern_no_chars ="[!0-9]";
    preg_match($pattern, $alias_title, $matches);         

    if(count($matches) <1){
        return $results;
    }

    $last_id = end($matches);
    $id_no_char = preg_replace($pattern_no_chars, '', $last_id);   

例如,一个 url 可能是 /image/view?alias_title=birkenhead-park-15-v-lymm-49-00601jpg-6514

在这种情况下,我想要 6514

4

2 回答 2

2

你可以使用explode()

$chunks = explode("-", $url);
$numbers = end($chunks);

或者像这样的正则表达式:

/-(\d+)$/
于 2013-01-11T01:19:22.037 回答
0

你也可以使用

preg_match('~(?<=-)\d+$~',$str,$m);
if (!empty($m)) echo $m[0];

这是细分:

(?<=-)  # last character before the match should be a dash
\d+     # 1 or more decimals (aka. the matched part)
$       # end of string

这是一个例子

$str = '/view?alias_title=network-warringtons-optare-versa-hybrid-yj62fkl-102-1593';
preg_match('~(?<=-)\d+$~',$str,$m);
if (!empty($m)) echo $m[0];

最后,这是输出:1593

于 2013-01-11T02:01:01.740 回答