質問
これを読みました PHP正規表現ページ, 、しかし、私が何かを見逃しているか、何かを読み間違えているか、または彼らが言うように機能しません。最初の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;"
所属していません StackOverflow