多个preg_match_all导致foreach

时间:2016-02-01 18:16:27

标签: php regex foreach preg-match-all

我想替换每个十进制数以便稍后在Javascript中使用。所以这是我的代码:

if (preg_match_all("#[0-9]+(\.[0-9]{1,8})#", $operationvalue_new2, $result)) {            
  foreach ($result[0] as $number_element) {                                                                                                      
    $operationvalue_new2 = preg_replace(
      "#[0-9]+(\.[0-9]{1,8})#", 
      "Number(\\0)", 
      $operationvalue_new2
    );
    #echo $operationvalue_new2;
  }              
};

以下是一个例子:

  

// var1812 / 100 *(* var1805 * var1807 2.688)+(var1808-var1812)* var1806 * var1807 * 1.2 / 100)

将转换为

  

// var1812 / 100 *(* var1805 * var1807号码(号码(2.688)))+(var1808-var1812)* var1806 * var1807 *号(编号(1.2))/ 100)

但应该是

  

// var1818 = var1812 / 100 *(* var1805 * var1807号(2.688))+(var1808-var1812)* var1806 * var1807 *号(1.2)/ 100)

1 个答案:

答案 0 :(得分:2)

试试这个:

<?php
$subject = "var1812/100*(var1805*var1807*2.688)+(var1808-var1812)*var1806*var1807*1.2/100)";
$result = preg_replace('/([0-9]+\.[0-9]{1,8})/s', 'number($1)', $subject);
echo $result;
?>

结果:

var1812/100*(var1805*var1807*number(2.688))+(var1808-var1812)*var1806*var1807*number(1.2)/100)