Escaping dei delimitatori in PHP
Se un carattere non è speciale, allora, quando lo usi come delimitatore, dovrà essere escapato all'interno dell'espressione regolare stessa. Vediamo un esempio.
Supponiamo che i cancelletti fungano da delimitatori, e all'interno dell'espressione regolare cerchiamo il carattere "e commerciale" (&). Poiché "e commerciale" non è un metacarattere, non lo escapiamo:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // restituirà '!'
?>
Supponiamo ora che i delimitatori siano "e commerciale" (&) e all'interno dell'espressione regolare ci serva anche un "e commerciale". In questo caso, "e commerciale" all'interno deve essere escapato, altrimenti causerà un errore PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // restituirà '!'
?>
Correggi l'errore commesso nel seguente codice:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>