Αναστροφή συνόλων χαρακτήρων σε regex
Χρησιμοποιώντας το καρέτ ^ στην αρχή των αγκύλων
μπορείτε να αντιστρέψετε τον επιθυμητό στόχο. Δηλαδή,
αν, για παράδειγμα, η εντολή [ab] ψάχνει
για το γράμμα 'a' ή 'b', τότε η εντολή
[^ab] θα ψάξει για όλους τους χαρακτήρες, εκτός
από 'a' και 'b'.
Παράδειγμα
Σε αυτό το παράδειγμα, το μοτίβο αναζήτησης είναι ως εξής:
γράμμα 'x', μετά ΟΧΙ γράμμα 'a',
όχι 'b' και όχι 'c', μετά γράμμα
'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
Ως αποτέλεσμα, στη μεταβλητή θα γραφτεί το εξής:
'xaz xbz xcz !'
Παράδειγμα
Σε αυτό το παράδειγμα, το μοτίβο αναζήτησης είναι ως εξής:
γράμμα 'x', μετά ΟΧΙ πεζό λατινικό γράμμα,
μετά γράμμα 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
Ως αποτέλεσμα, στη μεταβλητή θα γραφτεί το εξής:
'xaz xbz ! !'
Πρακτικές ασκήσεις
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σύμφωνα με το μοτίβο: ψηφίο '1', μετά χαρακτήρας
όχι 'e' και όχι 'x', ψηφίο '2'.
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σύμφωνα με το μοτίβο: γράμμα 'x', μετά ΟΧΙ
ψηφίο από 2 έως 7, γράμμα 'z'.
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σύμφωνα με το μοτίβο: γράμμα 'x', μετά ΟΧΙ
κεφαλαίο λατινικό γράμμα από 1 και περισσότερες
φορές, γράμμα 'z'.
Γράψτε μια κανονική έκφραση που θα βρει συμβολοσειρές
σύμφωνα με το μοτίβο: γράμμα 'x', μετά όχι
κεφαλαίο ούτε πεζό λατινικό γράμμα και όχι ψηφίο
από 1 έως 5 από 1 και περισσότερες
φορές, γράμμα 'z'.