I need help with writing a regular expression in PHP. I am not friend enough to get it right. I need to find all integers in a string and format them as follows:
By using the 'e
' modifier on preg_replace() (or using preg_replace_callback()) you can use @codaddict's 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'
From your examples looks like you are multiplying the number with 1000
and prefixing them with 0
's to make a total of 6
digits. If that is true you can just do:
sprintf("%06d",$n*1000);