Αποφυγή οριοθετών σε PHP
Εάν ένας χαρακτήρας δεν είναι ειδικός, τότε, όταν τον χρησιμοποιείτε ως οριοθέτη, θα πρέπει να τον αποφύγετε μέσα στην ίδια την κανονική έκφραση. Ας δούμε ένα παράδειγμα.
Ας υποθέσουμε ότι οι οριοθέτες μας είναι σημάδια (#), και μέσα στην κανονική έκφραση αναζητούμε τον χαρακτήρα ampersand (&). Εφόσον το ampersand δεν είναι ειδικός χαρακτήρας, δεν το αποφεύγουμε:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // εμφανίζει '!'
?>
Ας υποθέσουμε τώρα ότι οι οριοθέτες είναι ampersands (&) και μέσα στην κανονική έκφραση χρειαζόμαστε επίσης ένα ampersand. Σε αυτήν την περίπτωση, το ampersand μέσα πρέπει να αποφευχθεί, αλλιώς θα προκαλέσει σφάλμα PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // εμφανίζει '!'
?>
Διορθώστε το σφάλμα που έγινε στον ακόλουθο κώδικα:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>