我需要一个简单的函数来从字符串中提取数字。这些数字在插入数组之前必须经过验证,因为有不同类型的数字。
例如:
$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.";
我需要的是获得仅包含这些符合条件的数字的数组:
答案 0 :(得分: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
答案 1 :(得分:0)
preg_match_all
是你正在照顾的功能。
下面的代码将匹配任何长度为9个字符的数字。
以下是一个例子:
preg_match_all('/[0-9]{9}/', $string, $matches);
echo implode("\n", $matches[0]);
这将导致:
123456789
987654321