php提取字符串中的数字
第一种方法:
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 ''; }
测试结果:
<?php $v_str_before="www.163.com"; //不好意思,此处用网易的域名举例 $v_str_after=findNum($v_str_before); echo $v_str_before."</br>"; echo "找出数字</br>"; echo $v_str_after."</br>"; 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 ''; } ?>
如图所示:
第二种方法:
function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $temp=array('1','2','3','4','5','6','7','8','9','0'); $result=''; for($i=0;$i<strlen($str);$i++){ if(in_array($str[$i],$temp)){ $result.=$str[$i]; } } return $result; }
测试结果:
<?php $v_str_before="www.163.com"; //不好意思,此处用网易的域名举例 $v_str_after=findNum($v_str_before); echo $v_str_before."</br>"; echo "找出数字</br>"; echo $v_str_after."</br>"; function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $temp=array('1','2','3','4','5','6','7','8','9','0'); $result=''; for($i=0;$i<strlen($str);$i++){ if(in_array($str[$i],$temp)){ $result.=$str[$i]; } } return $result; } ?>
效果跟上面一样!
第三种方法:
function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $result=''; for($i=0;$i<strlen($str);$i++){ if(is_numeric($str[$i])){ $result.=$str[$i]; } } return $result; }
测试结果:
<?php $v_str_before="www.163.com"; //不好意思,此处用网易的域名举例 $v_str_after=findNum($v_str_before); echo $v_str_before."</br>"; echo "找出数字</br>"; echo $v_str_after."</br>"; function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $result=''; for($i=0;$i<strlen($str);$i++){ if(is_numeric($str[$i])){ $result.=$str[$i]; } } return $result; } ?>
效果跟上面一样!
特别谢谢此文的原作者。