このPHP RegEx pageを読みましたが、何かが抜けているか、何かが読み違えているか、または彼らが言うように機能しません。最初の2つのうちの1つだと思います。
$str = preg_replace("([|]\d*)", "\1;", $str);
このPHP RegEx pageを読みましたが、何かが抜けているか、何かが読み違えているか、または彼らが言うように機能しません。最初の2つのうちの1つだと思います。
$str = preg_replace("([|]\d*)", "\1;", $str);
正規表現は Perl 構文に従う必要があります。つまり、最初と最後が同じ文字でなければなりません (いくつかの例外があります)。また、PHP の二重エスケープを回避するために、後方参照は二重スラッシュで開始する必要があります。これはうまくいくはずです(簡単なテストで):
$str = "asdfasdf |123123 asdf iakds |302 asdf |11";
$str = preg_replace("/([|]\d*)/", "\\1;", $str);
echo $str; // prints "asdfasdf |123123; asdf iakds |302; asdf |11;"