PHP正则表达式在最后一个实例后的所有数字

时间:2013-01-11 01:17:09

标签: regex

嗨我想在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);   

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

在这种情况下我想要6514

2 个答案:

答案 0 :(得分:2)

您可以使用explode()

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

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

/-(\d+)$/

答案 1 :(得分: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