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 '';
}
?>

如图所示:

php提取字符串中的数字

第二种方法:

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;
}

?>

效果跟上面一样!

特别谢谢此文的原作者。