3

このPHP RegEx pageを読みましたが、何かが抜けているか、何かが読み違えているか、または彼らが言うように機能しません。最初の2つのうちの1つだと思います。

$str = preg_replace("([|]\d*)", "\1;", $str);
4

1 に答える 1

4

正規表現は 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;"
于 2008-08-19T19:29:00.513 に答える