$output = preg_replace("|(/D)(/s+)(/d+)(;)|", "//1,//3;", $output);
すべての英字、1つ以上の空白文字(タブおよび/またはスペース)、1つ以上の数字、セミコロン、英字、コンマ、数字、そしてセミコロン。
例を示します。
始める:
hello world 1007;
終わり:
hello world,1007;
開始と終了の2つ|
はおそらく正しくなく、両方ともスラッシュである必要があります。
他のすべてのスラッシュは円記号である必要があります(エスケープする必要があります)。
また、PHP 4.04$n
は、キャプチャグループを参照するための推奨される方法です。
$output = preg_replace("/(\\D)\\s+(\\d+;)/", "$1,$2", $output);
一重引用符を使用する場合は、円記号をエスケープする必要はありません。
$output = preg_replace('/(\D)\s+(\d+;)/', '$1,$2', $output);
それらのスラッシュはバックスラッシュである必要がありますか?ダブルクォートをシングルクォートに変更しない限り、PHPでもそれらをエスケープする必要があります。
フォワードスラッシュではなく、正規表現にバックスラッシュが必要です。開始パイプと終了パイプが必要です(または正規表現の別の区切り文字)
$x = "hello world 1007;";
echo preg_replace('|(\D)(\s+)(\d+)(;)|','$1,$3',$x);
echo preg_replace('/(\D)(\s+)(\d+)(;)/','$1,$3',$x);
echo preg_replace('{(\D)(\s+)(\d+)(;)}','$1,$3',$x);