【www.bbyears.com--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.164 311.151 MYR 125.042 NZD GBP84.270 SGD60.227 USD134.400";
preg_match_all("/(\d+)\.(\d+)/is", $total, $arr);
var_export($arr);
?>
结果是我们相要的哦,不信你去试一下吧。