php如何中字符串中把数字提取出来?

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/article/39.html

到此这篇关于php如何中字符串中把数字提取出来?的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/article/39.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用
未经允许不得转载:Toy模板网 » php如何中字符串中把数字提取出来?

相关文章

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面错误!请稍后再试~

    Tob