Php搜索取代有趣的任务

时间:2011-04-19 01:36:05

标签: php string search replace format

我有一个有趣的难题要解决。我们必须使用PHP find replace命令转换以下变量

from:
$string = '
h= 1.00                h= 2.00  h= 3.50
W= 1.50                w= 3.00  w= 4.50
st=5000                st=6000  st=7000
';

to:
$string = '
A=1.00, B=2.00, C=3.50
A=1.50, B=3.00, C=4.50
A=5000, B=6000, C=7000
';

这意味着很好地格式化字符串数据,有时列只有2但有时候列是3,4,5甚至10。

我需要PHP为我做这个,但我不知道哪些代码对它有好处。

可能是preg_replace可能会有所帮助,但我不确定。

先谢谢你的帮助......

1 个答案:

答案 0 :(得分:0)

你可以使用像:

这样简单的东西
preg_match_all('/\w+=\s*([\d.]+).+\w+=\s*([\d.]+).+\w+=\s*([\d.]+)/',
     $input, $values, PREG_SET_ORDER);
print_r($values);

这将逐行提取数据:

[0] => Array
    (
        [0] => h= 1.00                h= 2.00  h= 3.50
        [1] => 1.00
        [2] => 2.00
        [3] => 3.50
    )

然后很容易重新格式化和重命名。

foreach ($values as $row) {
    array_shift($row);
    $output .= "A=$row[0], B=$row[1], C=$row[2]\n";
}