Escapado de delimitadores en PHP
Si un carácter no es especial, entonces, cuando lo usas como delimitador, será necesario escaparlo dentro de la propia expresión regular. Veamos un ejemplo.
Supongamos que usamos almohadillas como delimitadores, y dentro de la expresión regular buscamos el carácter ampersand. Dado que el ampersand no es un carácter especial, no lo escapamos:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // devuelve '!'
?>
Supongamos ahora que los delimitadores son ampersands y dentro de la expresión regular también necesitamos un ampersand. En este caso, el ampersand interno tiene que ser escapado, de lo contrario causará un error de PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // devuelve '!'
?>
Corrija el error cometido en el siguiente código:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>