php结合正则获取字符串中数字
php结合正则获取字符串中数字
<?php $patterns="/\d+/";//第一种 //$patterns="/\d/";//第二种 $strs="left:0px;top:202px;width:90px;height:30px"; preg_match_all($patterns,$strs,$arr); print_r($arr); /***************运行结果*********************/ //第一种 Array ( [0]=>Array ( [0]=>0 [1]=>202 [2]=>90 [3]=>30 ) ) //第二种 Array ( [0]=>Array ( [0]=>0 [1]=>2 [2]=>0 [3]=>2 [4]=>9 [5]=>0 [6]=>3 [7]=>0 ) )
php获取指定字符串的数字$a="时代发123生的12345678发生的";给一个函数能抓取到$a中的数字12345678,如果没有,则返回0
要写好函数,
1.只匹配长度位8的数字
2.如果找到则返回改数字,如果没有则返回0
functiona($str){ returnpreg_match('/([0-9]{8})/',$str,$a)?$a[1]:0; }
在网上搜索到这个测试一下发现还可以,但是如果字符长度不d{4}不定长就不行了
functionfindNum($str=''){ if(empty($str)){return'';} $reg='/(\d{4}(\.\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''; }
后来又发现知道中有一个
$str=trim($str); if(preg_match('|(\d+)|',$str,$r))return$r[1];
发现这个可以获取任意连续长度的数字了,当然在网上还看到很多,但有一个可以了所以就没有再测试了。
以上所述就是本文的全部内容了,希望大家能够喜欢。