6

に変換するereg_replace必要がありますpreg_replace

ereg_replace コードは次のとおりです。

ereg_replace( '\$([0-9])', '$\1', $value );

preg は開始と終了のバックスラッシュで示されるため、変換は次のようになります。

preg_replace( '\\$([0-9])\', '$\1', $value );

私は正規表現についてよく知らないので、上記が正しい方法であるかどうかわかりませんか?

4

2 に答える 2

13

ereg_replace()との違いの1つはpreg_replace()、パターンを区切り文字で囲む必要があることですdelimiter + pattern + delimiterドキュメントに記載されているように、区切り文字は、英数字、円記号、空白文字以外の任意の文字にすることができます。これは、有効な区切り文字が、、、、、、、、/およびであり、#最初の2つが最も頻繁に使用されることを意味します(ただし、これは私の推測です)。~+%@!<>

期待どおりに機能した場合ereg_replace()は、パターンに区切り文字を追加するだけで、問題が解決します。以下のすべての例が機能します。

preg_replace('/\$([0-9])/', '&#36;\1', $value);

また

preg_replace('#\$([0-9])#', '&#36;\1', $value);

また

preg_replace('%\$([0-9])%', '&#36;\1', $value);
于 2012-04-15T07:06:28.030 に答える
1

試す

preg_replace( '#\$([0-9])#', '\$$1', $value );
于 2012-04-15T06:29:31.053 に答える