我需要帮助在PHP中编写正则表达式。我不是那么好的朋友。我需要在字符串中找到所有整数并按如下格式对它们进行格式化:
1 to 001000
0.13 to 000130
100 to 0100000
等等。在正常语音中,它意味着 - 编辑数字前面加零或编辑它以相同的“顺序”。关键是要将所有整数作为此格式的字符串(6个数字)。有人可以帮帮我吗?我不会在这里发布我的试训,因为它们太愚蠢了: - )
答案 0 :(得分:2)
在您的示例中,您可以将数字乘以1000
,并在其前面添加0
,以使总数为6
位数。如果这是真的,你可以这样做:
sprintf("%06d",$n*1000);
答案 1 :(得分:1)
使用preg_replace()
上的“e
”修饰符(或使用preg_replace_callback()
),您可以使用@ codaddict的answer:
function my_format($d) {
return sprintf('%06d', round($d * 1000));
}
$your_string = '0.12 100 number 1.12 something';
preg_replace('/\d+(\.\d+)?/e', 'my_format(\\0)', $your_string);
// Should give '000120 100000 number 001120 something'