使用preg_replace在字符串中的括号之间添加15%的价格

时间:2013-09-04 16:17:46

标签: php

我有一些字符串,我需要找到<之间的数字。 >括号,我发现有关堆栈溢出的帖子,我正在尝试使用我在那里找到的代码

$colops = preg_replace_callback( '/\<(\d+)\>/', function( $match) {
    return '<' . ($match[1] * 1.15) . '>';
}, $row_products['colops']);

我的字符串看起来像这样

  

无存储&lt; 118.54&gt;,存储2抽屉&lt; 158.54&gt;,存储与   滑块&LT; 138.54&GT;

我这样做是对的,有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

\d仅匹配数字。为了捕捉118.54等内容,你似乎也需要匹配点。

你的表达应该是这样的:

$colops = preg_replace_callback('/\<([\d.,]+)\>/', function($match) {
    return '<' . number_format(floatval($match[1]) * 1.15, 2) . '>';
}, $row_products['colops']);