preg_match_all得到最后一场比赛

时间:2013-09-17 16:48:45

标签: php regex string preg-match-all

是否可以使用preg_match_all获取最后一场比赛?使用这个正则表达式只会返回126 81,这不是我所追求的。在这种情况下,我想要返回183 34。

$string = 'Korpstigen 126 183 34 Kalmar';
preg_match_all("/[0-9]{5}|[0-9]{3} [0-9]{2}/", $string, $matches, PREG_OFFSET_CAPTURE);

2 个答案:

答案 0 :(得分:2)

我建议使用字词边界\b

preg_match_all("/\b[0-9]{5}\b|\b[0-9]{3} [0-9]{2}\b/", $string, $matches, PREG_OFFSET_CAPTURE);

regex101 demo

答案 1 :(得分:0)

如果您希望获得183 34并忽略该字符串的所有其他部分:

preg_match_all("/[0-9]{3} [0-9]{2} /", $string, $matches);

将返回

Array
(
    [0] => Array
        (
            [0] => 183 34 
        )

)

我不确定你的需求,但如果你需要所有三个数字

preg_match_all("/[0-9]{2,3}/", $string, $matches);

将返回

Array
(
    [0] => Array
        (
            [0] => 126
            [1] => 183
            [2] => 34
        )

)