PHP搜索替换有趣的任务

发布于 2024-11-02 01:33:34 字数 456 浏览 3 评论 0原文

我有一个有趣的谜题需要解决。我们必须使用 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 可能会有帮助,但我不确定。

感谢您提前的帮助...

I have an interesting puzzle to solve. We have to convert the following variable using PHP find replace command

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
';

Meaning that nicely format the string data and sometimes the columns are only 2 but then sometimes the columns are 3, 4, 5 or even 10.

I need PHP to do this for me but I don't know what code will be good for it.

May be preg_replace could be helpful but I am not sure.

Thanks for the help in advance...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

破晓 2024-11-09 01:33:34

您可以使用一些简单的东西,例如:

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";
}

You could use something simplistic like:

preg_match_all('/\w+=\s*([\d.]+).+\w+=\s*([\d.]+).+\w+=\s*([\d.]+)/',
     $input, $values, PREG_SET_ORDER);
print_r($values);

This will extract the data line-wise:

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

Which is then easy to reformat and rename.

foreach ($values as $row) {
    array_shift($row);
    $output .= "A=$row[0], B=$row[1], C=$row[2]\n";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文