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
相关产品推荐
相关产品推荐

