通常、私はこれを行います。
$str = preg_replace('#(\d+)#', ' $1 ', $str);
utf-8になることがわかっている場合は、パターンに小文字の「u」修飾子を追加するとよいと思います。しかし、utf-8がネイティブ文字セットを使用した場合の2倍、場合によっては3倍のストレージスペースを使用するという報告があるため、アプリケーションをutf-8に制限しないようにしています。
したがって、私は私のお気に入りのpreg_関数から離れようとしています。
これまでのところ、ほとんどのことはかなり単純ですが、通常は「\d」などのpreg_の文字クラスを使用する置換に少し固執しています。