我有一个看起来很简单的问题,但却击败了我微不足道的正则表达式技巧。我有一个字符串,我需要转换为一个数组,然后相应地处理值,这很简单,但字符串的格式不能改变(它在别处生成),它的逻辑让我感到困惑。如何使用正则表达式将字符串拆分为二维数组?
该字符串是:
[6] [2] [3] 12.00; [5] [4]
这基本上是一个组ID和十进制值(在这种情况下,ID 3 == 12.00)。 id的数量可以在任何时候改变,小数值可以在任何或全部id中。
在一个理想的世界里,我将有以下阵列:
Array (
[0] => Array (
[id] => 6
[num] =>
)
[1] => Array (
[id] => 2
[num] =>
)
[2] => Array (
[id] => 3
[num] => 12.00
)
Etc...
做任何你正则表达式向导知道如何可以用更少的脏话来完成,比我已经能够实现吗?
我迄今为止,已经能够提取使用的ID:
preg_match_all('@\[(.*?)\]@s', $string, $array);
,并使用小数:
preg_match_all('/([0-9]+[,\.]{1}[0-9]{2})/', $string, $array);
,但失去的ID和价值之间的关系。
就可以解决这个问题,爆炸和它的strstr比在性能方面正则表达式更好。 – shox