Escapování oddělovačů v PHP
Pokud znak není speciální, pak, když jej použijete jako oddělovač, bude jej třeba uvnitř regulárního výrazu escapovat. Podívejme se na příklad.
Předpokládejme, že jako oddělovače slouží mřížky, a uvnitř regulárního výrazu hledáme znak ampersandu. Protože ampersand není speciálním znakem, neescapujeme jej:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // vypíše '!'
?>
Nyní předpokládejme, že oddělovače jsou ampersandy a uvnitř regulárního výrazu také potřebujeme ampersand. V takovém případě je třeba ampersand uvnitř escapovat, jinak to způsobí chybu PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // vypíše '!'
?>
Opravte chybu, která byla provedena v následujícím kódu:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>