首页 > 解决方案 > 如何在长空格之间获取数字(PHP Regex)

问题描述

我想用 PHP 正则表达式专门提取数字,虽然我目前正在尝试使用 regex101 网站,但我并没有得到非常多的正则表达式。事情是,我有这个:

66
                              28006 MadridVer teléfono

(从字面上看,它有更多的空间,实际上下一行显示了 28006 MadridVer teléfono)。而且我想提取数字 28006 或至少以我将 28006 分别放在其中一个组中的方式拆分表达式的结果。我的 php 正则表达式是什么样的?也许除了捕获空间之外,我还应该捕获一条新线或其他东西。但是我完全迷失了(是的,我还是一个绝对的正则表达式新手)。

标签: phpregexpreg-match-all

解决方案


我认为不需要正则表达式。

删除新线并在空间上爆炸。
然后使用 array_filter 从数组中删除空值并使用 array_values 重新排列数组。

$str = "66
                              28006 MadridVer teléfono";

$str = str_replace("\n", " ", $str);
$arr = explode(" ", $str);
$arr = array_values(array_filter($arr));
var_dump($arr);

回报:

array(4) {
  [0]=>
  string(2) "66"
  [1]=>
  string(5) "28006"
  [2]=>
  string(9) "MadridVer"
  [3]=>
  string(9) "teléfono"
}

推荐阅读