一尘不染

使用PHP从字符串中获取数字

php

我有字符串:

$one = 'foo bar 4 baz (5 qux quux)';
$two = 'bar baz 2 bar';
$three =  'qux bar 12 quux (3 foo)';
$four = 'foo baz 3 bar (13 quux foo)';

如何找到这些字符串中的数字?

也许与功能:

function numbers($string){

    // ???

    $first = ?;
    $second = ?;
}

例如:

function numbers($one){

    // ???

    $first = 4;
    $second = 5;
}

function numbers($two){

    // ???

    $first = 2;
    $second = NULL;
}

最好的方法可能是正则表达式,但是如何在示例中使用它呢?也许没有正则表达式?


阅读 253

收藏
2020-05-29

共1个答案

一尘不染

您可以为此使用正则表达式。该\d
转义序列将匹配的主题字符串中的所有数字。

例如:

<?php

function get_numerics ($str) {
    preg_match_all('/\d+/', $str, $matches);
    return $matches[0];
}

$one = 'foo bar 4 baz (5 qux quux)';
$two = 'bar baz 2 bar';
$three = 'qux bar 12 quux (3 foo)';
$four = 'foo baz 3 bar (13 quux foo)';

print_r(get_numerics($one));
print_r(get_numerics($two));
print_r(get_numerics($three));
print_r(get_numerics($four));
2020-05-29