0

我需要一个简单的函数来从字符串中提取数字。这些数字必须在插入数组之前进行验证,因为存在不同类型的数字。

例如:

$string ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in tortor dui, ac ornare tellus. Aenean condimentum eleifend commodo. Cras commodo magna a enim semper nec vulputate turpis ultricies. Etiam sodales urna quis mauris commodo gravida. Etiam eu varius ligula. Mauris in faucibus ligula. In hac habitasse platea dictumst. Praesent aliquet, ligula et tristique vehicula, leo lorem accumsan nisl, vitae eleifend odio 1234 urna at magna. Integer 123456789 sit amet tincidunt enim. Curabitur eu tellus justo. Duis 987654321 vehicula tortor in eros consequat 12345 id lacinia lacus ornare.";

我需要的是获得一个只有这些合格数字的数组:

  • 123456789
  • 987654321
4

2 回答 2

3

您可以使用preg_match_all

preg_match_all("/[0-9]{9}/", $string, $match);
print(implode("\n", $match[0]));

用于教育目的

echo implode("\n", array_filter(explode(" ", $string), function ($a) {
    return is_numeric($a) and strlen($a) == 9;
}));

两者都会输出

123456789
987654321
于 2013-01-01T20:50:57.500 回答
0

preg_match_all是您正在关注的功能。下面的代码将匹配任何长度为 9 个字符的数字。

这是一个例子:

preg_match_all('/[0-9]{9}/', $string, $matches);
echo implode("\n", $matches[0]);

这将导致:

123456789
987654321
于 2013-01-01T21:11:01.467 回答