PHPにおけるデリミタのエスケープ

文字が特殊文字でない場合、それをデリミタとして使用すると、 正規表現内でその文字自体をエスケープする必要があります。 例を見てみましょう。

デリミタとしてハッシュ記号(#)を使用し、 正規表現内でアンパサンド記号(&)を検索するとします。 アンパサンドは特殊文字ではないため、エスケープしません:

php<?php
  echo preg_replace('#a&b#', '!', 'a&b'); // '!'を出力
?>

次に、デリミタがアンパサンドで、 正規表現内にもアンパサンドが必要な場合を考えます。 この場合、内部のアンパサンドをエスケープする必要があります。 そうしないと、PHPエラーが発生します:

php<?php
  echo preg_replace('&a\&b&', '!', 'a&b'); // '!'を出力
?>
Задание 1

次のコードの間違いを修正してください:

php<?php
  echo preg_replace('#a#b#', '!', 'a#b');
?>