使用正则表达式 preg_match_all 配合模式 /\d+/ 可以从包含字母的字符串中提取所有连续数字序列。该函数会返回一个数组,包含所有匹配到的数字子串,适用于需要从混合文本中剥离数值信息的场景。

如何提取字符串中的第一个数字序列
调用 preg_match 并传入模式 /\d+/ 可以仅获取第一个匹配的数字串。与 preg_match_all 不同,它返回的是完整匹配结果及其捕获组,适合只需要首个数值的场景。

$input = "abc123def456";
preg_match('/\d+/', $input, $matches);
// $matches[0] 为 "123"如何处理非连续数字片段
当字符串中存在多段数字时,preg_match_all 会将它们分别存入结果数组。若需合并为单个整数或保持分离状态,可根据业务逻辑对返回数组进行 implode 或遍历处理。此方法不会忽略任何数字片段,确保数据完整性。
立即学习“PHP免费学习笔记(深入)”;

$input = "id:100, score:200";
preg_match_all('/\d+/', $input, $matches);
print_r($matches[0]);
// 输出: Array ( [0] => 100 [1] => 200 )基于输入 "item-99a88" 的具体提取结果
对于输入字符串 item-99a88,使用 preg_match_all('/\d+/', $str, $out) 将返回两个独立数字:99 和 88。这是因为正则引擎按顺序扫描,遇到连续数字即截取,字母作为分隔符导致数字被拆分为两段。若需合并为 9988,需对结果数组执行 implode('', $out[0])。



















