php 如何从字符串中提取数字出来
1、正则提取【只提取第一次出现的数字】
<?php $str ='我是123456一段测试的字789符串00'; preg_match('/\d+/',$str,$number); print_r($number); ?>
说明:使用 preg_match 函数和正则表达式 /\\d+/ 来从字符串中提取第一次出现的数字。提取结果存储在 $number 变量中,通过 print_r 打印出来。
2、正则提取【字符串中出现的数字都提取出来,数组形式】
<?php $str ='我是123456一段测试的字789符串00'; preg_match_all('/\d+/',$str,$arr); print_r($arr); ?>
说明:使用 preg_match_all 函数和正则表达式 /\\d+/ 来从字符串中提取所有出现的数字。提取结果以数组形式存储在 $arr 变量中,并通过 print_r 打印出来。
3、使用 in_array 方法【字符串中出现的数字都提取出来,拼接在一起,字符串形式】注意编码问题
$str='我是123456一段测试的字789符串00'; $str=trim($str); if (!empty($str)) { $key = ['0','1','2','3','4','5','6','7','8','9']; $number = ''; for ($i = 0;$i < strlen($str);$i++) { if (in_array($str[$i],$key)){ $number .= $str[$i]; } } } print_r($number);
说明:首先使用 trim 函数去除字符串两端的空格,然后使用 in_array 方法逐个判断字符串中的字符是否为数字。如果是数字,则将其拼接到 $number 变量中。最终,通过 print_r 打印出提取的数字字符串。
4、同 in_array 方法一样使用 is_numeric 方法
<?php $str = '我是123456一段测试的字789符串00'; $str = trim($str); if (!empty($str)) { $number = ''; for ($i = 0; $i < strlen($str); $i++) { if (is_numeric($str[$i])) { $number .= $str[$i]; } } } print_r($number); ?>
说明:这种方法与方法三类似,不同之处在于使用了 is_numeric 函数来判断字符是否为数字。提取结果和打印方式与方法三相同。
注意:
需要注意编码问题,确保字符串的编码格式与代码文件的编码格式一致,避免出现乱码或解析错误的情况。
方法一和方法二都使用了正则表达式,可以根据需要修改正则表达式来匹配不同的数字模式。
方法三和方法四使用了遍历字符的方式,适用于简单的字符串提取操作。如果需要处理大量数据或复杂的规则,请考虑使用正则表达式等更高效的方法。文章来源:https://www.toymoban.com/diary/php/39.html
文章来源地址https://www.toymoban.com/diary/php/39.html
到此这篇关于php如何中字符串中把数字提取出来?的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!