发布网友 发布时间:2022-04-06 03:41
共4个回答
懂视网 时间:2022-04-06 08:02
php正则替换数字的实现方法:首先创建一个PHP示例文件;然后使用正则表达式“preg_match_all('/(\d+)\.(\d+)/is', $total, $arr);”实现替换字符串中的数字即可。
推荐:《PHP视频教程》
php正则表达式提取字符串中的数字例子
今天开发采集器,用到从字符串里取数字,后来想到了以下用正则表达式来取。
用正则
代码如下
$str = ereg_replace(‘[^0-9]‘,”,$str);和 $str = preg_replace( ‘/[^\d]/ ‘, ‘ ‘,$str);
例子
代码如下
function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $reg='/(\d{3}(\.\d+)?)/is';//匹配数字的正则表达式 preg_match_all($reg,$str,$result); if(is_array($result)&&!empty($result)&&!empty($result[1])&&!empty($result[1][0])){ return $result[1][0]; } return ''; }
如果是小数点呢,我们上面办法显然是不正确的,我们可以进行修改
代码如下
$regexp = '/(\d+)\.(\d+)/is'; $total = "42.234 EUR 53.218 AUD CAD97.1 311.151 MYR 125.042 NZD GBP84.270 SGD60.227 USD134.400"; preg_match_all('/(\d+)\.(\d+)/is', $total, $arr); var_export($arr); ?>
结果是我们相要的哦,不信你去试一下吧。
热心网友 时间:2022-04-06 05:10
你这是一行N列的表格,可以用数组来表示td中的内容,然后用foreach遍历数组用number_format函数格式化
热心网友 时间:2022-04-06 06:28
发现隔开数据的几个都是“</td><td>”,可以依据此进行拆分为数组。
explode();
再foreach遍历数据,不是正确的数据直接丢掉,吧有用的数据来四舍五入这些都可以,再存到新数组中。
最后你可以实现打印出新的表格中!
热心网友 时间:2022-04-06 08:03
用四舍五入的保留方式
<?php
$t='<tr align="center><td>7222.4</td><td></td><td></td><td>20</td><td>60.274930728039</td><td>380.27493072804</td><td>8.4</td><td>6850.525069271359</td><td>0.53</td><td>6849.995069271359</td></tr>';
function replaceNum($m){
return $m[1].sprintf('%.2f',round($m[2],2)).$m[4];
}
$t=preg_replace_callback('/(<td>)(\d+(\.\d+)?)(<\/td>)/','replaceNum',$t);
var_mp($t);
==========
string '<tr align="center><td>7222.40</td><td></td><td></td><td>20.00</td><td>60.27</td><td>380.27</td><td>8.40</td><td>6850.53</td><td>0.53</td><td>6850.00</td></tr>' (length=158)