Escaping af afgrænsere i PHP
Hvis et tegn ikke er specielt, så, når du bruger det som afgrænser, skal det escapes i det regulære udtryk selv. Lad os se på et eksempel.
Lad os sige, at vi bruger nummertegn som afgrænsere, og inde i det regulære udtryk leder vi efter et ampersand-tegn. Da ampersand ikke er et specialtegn, behøver vi ikke at escape det:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // udskriver '!'
?>
Lad os nu sige, at afgrænserne er ampersands og inde i det regulære udtryk har vi også brug for et ampersand. I dette tilfælde er vi nødt til at escape ampersandet inde i udtrykket, ellers vil det forårsage en PHP-fejl:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // udskriver '!'
?>
Ret fejlen, der er begået i følgende kode:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>