php教程

超轻量级php框架startmvc

php结合正则获取字符串中数字

更新时间:2020-03-04 22:11:30 作者:startmvc
php结合正则获取字符串中数字<?php$patterns="/\d+/";//第一种//$patterns="/\d/";//第二种$strs="lef

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


function a($str){
return preg_match('/([0-9]{8})/',$str,$a) ? $a[1] : 0;
}

在网上搜索到这个测试一下发现还可以,但是如果字符长度不d{4} 不定长就不行了


function findNum($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];

发现这个可以获取任意连续长度的数字了,当然在网上还看到很多,但有一个可以了所以就没有再测试了。

以上所述就是本文的全部内容了,希望大家能够喜欢。

php 正则 获取数字