假设我有一个字符串
$string = 'item_1 (600g x 8)';
然后我想得到 600 和 8 的乘积。输出将是:
Output: 4800.00g //600 * 8
这是php中的字符串操作,你们能帮帮我吗?
谢谢!
顺便说一下 item_1 - 液体或固体物品(糖、酱汁) 600 - 体积 g - 测量单位(可以是 ml、g、li 等) 8 - 数量
假设我有一个字符串
$string = 'item_1 (600g x 8)';
然后我想得到 600 和 8 的乘积。输出将是:
Output: 4800.00g //600 * 8
这是php中的字符串操作,你们能帮帮我吗?
谢谢!
顺便说一下 item_1 - 液体或固体物品(糖、酱汁) 600 - 体积 g - 测量单位(可以是 ml、g、li 等) 8 - 数量
你没有回答我的格式问题,但我认为你会有更多这样的字符串。可以通过更改正则表达式来操作规则。目前,符号和最后一位数字之间不允许有空格。您可以通过使用\s?
.
$string = 'item_1 (600g x 8)';
preg_match("/\(([0-9]+)[^0-9]+\s?([\*\+\-\/])\s?([0-9]+)\)/", $string, $matches);
$param1 = $matches[1];
$sign = $matches[2];
$param2 = $matches[3];
$out = null;
switch ($sign) {
case '+':
$out = $param1 + $param2;
break;
case '-':
$out = $param1 - $param2;
break;
case '*':
$out = $param1 * $param2;
break;
case '/':
$out = $param1 / $param2;
break;
}
echo number_format($out, 2);
对于那个确切的字符串,您可以使用以下内容;
<?php
preg_match_all('/(\d+)/', 'item_1 (600g x 8)', $matches);
echo ($matches[1][1] * $matches[1][2]);
如果任何其他字符串在整个字符串中只有 3 个数字的类似模式,那么这也应该有效