从字符串中保存数字

时间:2017-10-14 22:46:57

标签: php

我希望将所有数字单独存储在一个字符串中。整数必须单独出现并被白色空间包围。

这就是我的意思:

输入

  

blah 5 blah bl3h 555 blah 123 blah a2b3 5030a

预期输出

  

[5],[555],[123]


这是我尝试过的迭代器,它似乎正确地对当前单词进行分组,但没有向数组添加任何内容

cleanWord

2 个答案:

答案 0 :(得分:3)

除非您特别需要使用循环,否则您可以在空间上进行爆炸并过滤掉每个不是数字的子字符串。

{{1}}

答案 1 :(得分:1)

您可以使用regular expressions。 \ d escape sequence将匹配主题字符串中的所有数字。

例如:

<?php

function get_numerics ($str) {
    preg_match_all('/-?\.?(\d+((\.|,| )\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));

https://3v4l.org/DiDBL