Ответ сложный. Если вы допетрили до него самостоятельно, вы поняли регулярные выражения.
s/(\d)(?=((\d{3})+)(\D|$))/$1_/g
На php решение выглядит так:
$var = preg_replace('/(\d)(?=((\d{3})+)(\D|$))/', '$1 ', $var);