Erotinmerkkien escapaus PHP:ssä
Jos merkki ei ole erikoinen, niin kun käytät sitä erotinmerkkinä, sitä on escapattava itse säännöllisessä lausekkeessa. Katsotaan esimerkkiä.
Oletetaan, että erotinmerkkeinä toimivat risuunat, ja säännöllisessä lausekkeessa etsimme et-merkkiä. Koska et-merkki ei ole erikoismerkki, emme escapata sitä:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // tulostaa '!'
?>
Oletetaan nyt, että erotinmerkit ovat et-merkkejä ja säännöllisen lausekkeen sisällä tarvitsemme myös et-merkin. Tässä tapauksessa et-merkki sisällä on pakko escapata, muuten se aiheuttaa PHP-virheen:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // tulostaa '!'
?>
Korjaa seuraavassa koodissa tehty virhe:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>