Κατάλογος άρθρου
Βάση δεδομένων MySQLΠώς ταιριάζει η τυπική έκφραση;MySQL regexp όπως χρήση
Τακτικές εκφράσεις MySQL
Στα προηγούμενα κεφάλαια μάθαμε ότι η MySQL μπορεί να περάσει ΑΡΕΣΕΙ...% για ασαφή αντιστοίχιση.
Η MySQL υποστηρίζει επίσης την αντιστοίχιση άλλων κανονικών εκφράσεων Ο τελεστής REGEXP χρησιμοποιείται στη MySQL για αντιστοίχιση κανονικών εκφράσεων.
Εάν γνωρίζετε PHP ή Perl, είναι αρκετά απλό, καθώς η αντιστοίχιση τυπικών εκφράσεων της MySQL είναι παρόμοια με αυτά αυτών των σεναρίων.
Τα κανονικά μοτίβα στον παρακάτω πίνακα μπορούν να εφαρμοστούν στον τελεστή REGEXP.
Λειτουργία | περιγραφή |
---|---|
^ | Ταιριάζει με την αρχή της συμβολοσειράς εισόδου.Το ^ αντιστοιχεί επίσης στη θέση μετά το '\n' ή το '\r' εάν έχει οριστεί η ιδιότητα Multiline του αντικειμένου RegExp. |
$ | Ταιριάζει με το τέλος της συμβολοσειράς εισόδου.Εάν έχει οριστεί η ιδιότητα Multiline του αντικειμένου RegExp, το $ ταιριάζει επίσης με τη θέση πριν από το '\n' ή το '\r'. |
. | Ταιριάζει με οποιονδήποτε μεμονωμένο χαρακτήρα εκτός από το "\n".Για να αντιστοιχίσετε οποιονδήποτε χαρακτήρα συμπεριλαμβανομένου του '\n', χρησιμοποιήστε ένα μοτίβο όπως '[.\n]'. |
[...] | συλλογή χαρακτήρων.Ταιριάζει με οποιονδήποτε από τους χαρακτήρες που περιέχονται.Για παράδειγμα, το '[abc]' θα ταιριάζει με το "plai«α» στο ν». |
[^…] | Σύνολο αρνητικών χαρακτήρων.Ταιριάζει με οποιονδήποτε χαρακτήρα που δεν περιέχεται.Για παράδειγμα, το '[^abc]' θα ταιριάζει με το 'p' στο "απλό". |
p1|p2|p3 | Ταιριάζει με p1 ή p2 ή p3.Για παράδειγμα, το 'z|food' θα ταιριάζει με το "z" ή το "food". Το '(z|f)ood' αντιστοιχεί στο "zood" ή "food". |
* | Ταιριάζει με την προηγούμενη υποέκφραση μηδέν ή περισσότερες φορές.Για παράδειγμα, το zo* θα ταιριάζει με το "z" με το "zoo". * ισοδυναμεί με {0,}. |
+ | Ταιριάζει με την προηγούμενη υποέκφραση μία ή περισσότερες φορές.Για παράδειγμα, το 'zo+' θα ταιριάζει με το "zo" και το "zoo", αλλά όχι το "z". + ισοδυναμεί με {1,}. |
{δεν} | Το n είναι ένας μη αρνητικός ακέραιος.Ταιριάζει ακριβώς n φορές.Για παράδειγμα, το "o{2}" δεν θα ταιριάζει με το "o" στο "Bob", αλλά θα ταιριάζει και με τα δύο o στο "food". |
{n,m} | Τόσο ο m όσο και ο n είναι μη αρνητικοί ακέραιοι, όπου n <= m.Ταιριάζει τουλάχιστον n φορές και το πολύ m φορές. |
Παράδειγμα
Αφού κατανοήσουμε τις παραπάνω κανονικές απαιτήσεις, μπορούμε να γράψουμε εντολές SQL με κανονικές εκφράσεις σύμφωνα με τις δικές μας απαιτήσεις.Παρακάτω θα παραθέσουμε μερικά μικρά παραδείγματα (όνομα πίνακα: person_tbl ) για να εμβαθύνουμε την κατανόησή μας:
Βρείτε όλα τα δεδομένα που ξεκινούν με 'st' στο πεδίο ονόματος:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
Βρείτε όλα τα δεδομένα που τελειώνουν με "ok" στο πεδίο ονόματος:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
Βρείτε όλα τα δεδομένα που περιέχουν τη συμβολοσειρά "mar" στο πεδίο ονόματος:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
Βρείτε όλα τα δεδομένα στο πεδίο ονόματος που ξεκινά με φωνήεν ή τελειώνει με τη συμβολοσειρά "ok":
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared "Πώς να αντιστοιχίσετε κανονικές εκφράσεις βάσης δεδομένων MySQL; MySQL regexp like usage» θα σας βοηθήσει.
Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-492.html
Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!