Php 从字符串中检索数字字符

Php 从字符串中检索数字字符,php,regex,Php,Regex,我有一根这样的绳子- [ [ -2, 0.5 ], 我想检索数字字符,并将它们放入一个数组中,该数组的结果如下所示: array( [0] => -2, [1] => 0.5 ) 这样做的最佳方式是什么 编辑: 更彻底的例子 [ [ -2, 0.5, 4, 8.6 ], [ 5, 0.5, 1, -6.2 ], [ -2, 3.5, 4, 8.6 ], [ -2, 0.5, -3, 8.6 ] ] 我将逐行浏览这个矩阵,并希望将每行的数字提取到一个数组中。

我有一根这样的绳子-

[ [ -2, 0.5 ],
我想检索数字字符,并将它们放入一个数组中,该数组的结果如下所示:

array(
  [0] => -2,
  [1] => 0.5
)
这样做的最佳方式是什么

编辑:

更彻底的例子

[ [ -2, 0.5, 4, 8.6 ],
  [ 5,  0.5, 1, -6.2 ],
  [ -2, 3.5, 4, 8.6 ],
  [ -2, 0.5, -3, 8.6 ] ]

我将逐行浏览这个矩阵,并希望将每行的数字提取到一个数组中。

最简单的方法是使用正则表达式,并且:

生成的
$matches[1]
将包含您正在搜索的精确数组:

array(2) {
  [0]=>
  string(2) "-2"
  [1]=>
  string(3) "0.5"
}
正则表达式是:

(         - Match the following in capturing group 1
 -?       - An optional dash
 \d+      - One or more digits
 (?:      - Group the following (non-capturing group)
   \.\d+  - A decimal point and one or more digits
 )
 ?        - Make the decimal part optional
)
你可以看到它在工作

编辑:由于OP更新了问题,矩阵的表示形式可以通过以下方式轻松解析:

这里的好处是不需要不确定性或正则表达式,它将正确地键入所有单独的元素(根据其值键入int或float)。因此,上面的代码:


最容易使用的是正则表达式和:

生成的
$matches[1]
将包含您正在搜索的精确数组:

array(2) {
  [0]=>
  string(2) "-2"
  [1]=>
  string(3) "0.5"
}
正则表达式是:

(         - Match the following in capturing group 1
 -?       - An optional dash
 \d+      - One or more digits
 (?:      - Group the following (non-capturing group)
   \.\d+  - A decimal point and one or more digits
 )
 ?        - Make the decimal part optional
)
你可以看到它在工作

编辑:由于OP更新了问题,矩阵的表示形式可以通过以下方式轻松解析:

这里的好处是不需要不确定性或正则表达式,它将正确地键入所有单独的元素(根据其值键入int或float)。因此,上面的代码:


数字是否总是在方括号之间加逗号?目前我认为是这样。它们表示大小可变的矩阵。我将编辑这篇文章来展示一个例子。数字是否总是在方括号之间,并在它们之间加逗号?目前我认为是这样。它们表示大小可变的矩阵。我将编辑这篇文章来展示一个例子。我喜欢你解释正则表达式的方式。干得好!json_解码工作真是太酷了。这种矩阵格式是以同样的方式编码的,这纯粹是附带的。这里的矩阵数据结构来自一个比PHP早十年的程序。我喜欢你解释正则表达式的方式。干得好!json_解码工作真是太酷了。这种矩阵格式是以同样的方式编码的,这纯粹是附带的。这里的矩阵数据结构来自一个比PHP早十年的程序。
Array
(
    [0] => Array
        (
            [0] => -2
            [1] => 0.5
            [2] => 4
            [3] => 8.6
        )

    [1] => Array
        (
            [0] => 5
            [1] => 0.5
            [2] => 1
            [3] => -6.2
        )

    [2] => Array
        (
            [0] => -2
            [1] => 3.5
            [2] => 4
            [3] => 8.6
        )

    [3] => Array
        (
            [0] => -2
            [1] => 0.5
            [2] => -3
            [3] => 8.6
        )

)