PHP如何获取字符串中的首个数字并统计数字总数?
PHP获取字符串首个数字并统计数字总数的实现
刚好做过类似的需求,给你一个简洁的PHP实现方案,直接上可运行的代码:
<?php $numbers = "1, 2, 3"; // 提取字符串中的首个数字 preg_match('/\d/', $numbers, $firstMatch); // 处理字符串无数字的边界情况,避免报错 $firstNumber = $firstMatch[0] ?? '未找到数字'; // 统计字符串中所有数字的总数 preg_match_all('/\d/', $numbers, $allMatches); $totalCount = count($allMatches[0]); // 输出预期格式的结果 echo "$firstNumber 是首个数字,共$totalCount个数字"; ?>
代码细节解释:
- 获取首个数字:用
preg_match()结合正则/\d/(匹配单个数字字符),只抓取第一个出现的数字,结果存放在$firstMatch数组中。用??空合并运算符处理字符串中没有数字的边界情况,防止出现数组下标不存在的报错。 - 统计数字总数:
preg_match_all()会匹配字符串中所有符合规则的数字,把所有匹配结果存入$allMatches数组,统计数组长度就能得到单个数字字符的总个数。 - 测试你给出的示例字符串
"1, 2, 3",运行后会精准输出你预期的内容:1 是首个数字,共3个数字。
额外适配说明:
如果你的需求是提取首个连续数字序列(比如字符串是"abc123, 45"时,要提取123而不是单个的1),只需要把正则改成/\d+/即可;如果统计总数要按数字序列的个数算,同样把统计用的正则换成/\d+/就行,根据实际需求调整很灵活。
内容的提问来源于stack exchange,提问作者eComet Office
相关产品推荐
相关产品推荐

