You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何用正则匹配长字符串中的单个数字并补前导零

解决方法

核心思路是用零宽断言匹配独立的单个数字,避免匹配到两位数里的单个数字位。

代码实现

$str = '3/5/2024 1,21,3,42,5,63,7,84,9';
// 正则匹配前后都不是数字的单个阿拉伯数字
$pattern = '/(?<!\d)(\d)(?!\d)/';
$res = preg_replace($pattern, '0$1', $str);
echo $res;
// 输出结果:03/05/2024 01,21,03,42,05,63,07,84,09

正则说明

  • (?<!\d):负向回顾断言,匹配当前位置前面不是数字的场景
  • (\d):捕获单个阿拉伯数字
  • (?!\d):负向前瞻断言,匹配当前位置后面不是数字的场景
  • 替换时用0$1把捕获到的单个数字前面补0

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:18:04