首页 >后端开发 >php教程 >php结合正则获取字符串中数字的几种方法

php结合正则获取字符串中数字的几种方法

墨辰丷
墨辰丷原创
2018-06-09 15:32:122654浏览

本篇文章主要介绍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

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

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

function findNum($str=&#39;&#39;){
 if(empty($str)){return &#39;&#39;;}
 $reg=&#39;/(\d{4}(\.\d+)?)/is&#39;;//匹配数字的正则表达式
 preg_match_all($reg,$str,$result);
 if(is_array($result)&&!empty($result)&&!empty($result[1])&&!empty($result[1][0])){
 return $result[1][0];
 }
 return &#39;&#39;;
}

后来又发现知道中有一个

$str=trim($str);
 if (preg_match(&#39;|(\d+)|&#39;,$str,$r)) return $r[1];

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

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php模板与js上传插件结合实现无刷新上传的方法

php数字及数字运算验证码

php实现json编码转换的方法

以上是php结合正则获取字符串中数字的几种方法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn