Php 是否为包含文本和整数的字符串更正正则表达式?
我试图用一个包含文本和整数的字符串做一些数学运算,如下所示:Php 是否为包含文本和整数的字符串更正正则表达式?,php,regex,Php,Regex,我试图用一个包含文本和整数的字符串做一些数学运算,如下所示: $numberofservings = 8; $myarray = ("300g water", "3 tbsp Paprika powder", "2 tbsp Dried oregano", "1 tbsp Dried thyme"); for($a=0; $a < count($myarray); $a++){ if (preg_match('#[0-9]#', $myarray[$a])) {
$numberofservings = 8;
$myarray = ("300g water", "3 tbsp Paprika powder", "2 tbsp Dried oregano", "1 tbsp Dried thyme");
for($a=0; $a < count($myarray); $a++){
if (preg_match('#[0-9]#', $myarray[$a])) {
$myarray[$a] = str_replace(preg_match('#[0-9]#', $myarray[$a]), preg_match('#[0-9]#', $myarray[$a]) / $numberofservings, $myarray[$a]);
}
$newarray[] = "<label>" . $myarray[$a] . "</label>";
}
echo implode("<br />", $newarray);
$numberofservings=8;
$myarray=(“300克水”,“3汤匙辣椒粉”,“2汤匙牛至干”,“1汤匙百里香干”);
对于($a=0;$a ,$newarray);
当我回显新数组时,似乎正则表达式只检测到数组的一些值,它给出了以下信息:
300克水
3汤匙辣椒粉
2汤匙干牛至
0.25汤匙干百里香如果发现什么,则
preg_match
函数返回1。要获得匹配项,必须使用函数的第3个参数
以下是对您的示例的修复:
$amount_part = preg_match('/[0-9]+/', $myarray[$a], $matches);
foreach ($matches as $m) {
$myarray[$a] = str_replace($m, $m / $numberofservings, $myarray[$a]);
}
成功了!非常感谢。