Εξαιρέσεις μέσα σε σύνολα σε κανονικές εκφράσεις PHP
Γνωρίζετε ήδη ότι οι ειδικοί χαρακτήρες μέσα σε []
γίνονται συνηθισμένοι χαρακτήρες. Υπάρχουν, ωστόσο,
εξαιρέσεις: εάν χρειάζεστε τις αγκύλες
ως χαρακτήρες, τότε πρέπει να γραφτούν με backslash.
Για παράδειγμα, στον ακόλουθο κώδικα το μοτίβο αναζήτησης είναι ως εξής: ανάμεσα στα x βρίσκεται μια αγκύλη:
<?php
$str = 'x]x xax x[x x1x';
$res = preg_replace('#x[\[\]]x#', '!', $str);
?>
Ως αποτέλεσμα, στη μεταβλητή θα καταγραφεί το ακόλουθο:
'! xax ! x1x'
Δίνεται η συμβολοσειρά:
<?php
$str = 'x[]z x{}z x.z x()z';
?>
Γράψτε μια κανονική έκφραση που θα βρει όλες τις λέξεις
σύμφωνα με το μοτίβο: γράμμα 'x', έπειτα οποιοσδήποτε
αριθμός οποιωνδήποτε παρενθέσεων, έπειτα γράμμα 'z'.
Δίνεται η συμβολοσειρά:
<?php
$str = '[abc] {abc} abc (abc) [abc]';
?>
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σε οποιεσδήποτε αγκύλες και θα τις αντικαταστήσει με '!'.