Τι είναι η κανονική έκφραση στο PHP;
Η PHP Regular Expression γνωστή και ως regex είναι ένας ισχυρός αλγόριθμος αντιστοίχισης προτύπων που μπορεί να εκτελεστεί σε μία μόνο έκφραση. Οι κανονικές εκφράσεις χρησιμοποιούν αριθμητικούς τελεστές όπως (+, -, ^) για τη δημιουργία σύνθετων εκφράσεων. Μπορούν να σας βοηθήσουν να ολοκληρώσετε εργασίες όπως επικύρωση διευθύνσεων email, διεύθυνσης IP κ.λπ.
Γιατί να χρησιμοποιείτε τυπικές εκφράσεις
- Οι τακτικές εκφράσεις PHP απλοποιούν τον προσδιορισμό μοτίβων σε δεδομένα συμβολοσειράς καλώντας μια μόνο λειτουργία. Αυτό μας εξοικονομεί χρόνο κωδικοποίησης.
- Κατά την επικύρωση της εισαγωγής χρήστη, όπως διεύθυνση email, ονόματα τομέα, αριθμοί τηλεφώνου, διευθύνσεις IP,
- Επισήμανση λέξεων-κλειδιών στα αποτελέσματα αναζήτησης
- Κατά τη δημιουργία ενός προσαρμοσμένου προτύπου HTML. Το Regex στο PHP μπορεί να χρησιμοποιηθεί για τον προσδιορισμό των ετικετών προτύπων και την αντικατάστασή τους με πραγματικά δεδομένα.
Σε αυτό το σεμινάριο PHP Regex, θα μάθετε:
- Ενσωματωμένες λειτουργίες κανονικής έκφρασης στο PHP
- PHP Preg_match ()
- PHP Preg_split ()
- PHP Preg_replace ()
- Μεταχαρακτήρες κανονικής έκφρασης
- Εξηγώντας το μοτίβο
Ενσωματωμένες λειτουργίες κανονικής έκφρασης στο PHP
Η PHP έχει ενσωματωμένες λειτουργίες που μας επιτρέπουν να εργαζόμαστε με κανονικές λειτουργίες τις οποίες θα μάθουμε σε αυτό το σεμινάριο PHP Regular Expressions Ας δούμε τις συνηθισμένες λειτουργίες κανονικής έκφρασης στο PHP
- preg_match () σε PHP - αυτή η λειτουργία χρησιμοποιείται για την εκτέλεση αντιστοίχισης μοτίβου σε PHP σε μια συμβολοσειρά. Επιστρέφει αληθές αν βρεθεί ένας αγώνας και ψευδής εάν δεν βρεθεί κάποιος αγώνας.
- preg_split () σε PHP - αυτή η λειτουργία χρησιμοποιείται για την εκτέλεση αντιστοίχισης μοτίβου σε μια συμβολοσειρά και, στη συνέχεια, χωρίζει τα αποτελέσματα σε αριθμητικό πίνακα
- preg_replace () σε PHP - αυτή η λειτουργία χρησιμοποιείται για την εκτέλεση αντιστοίχισης μοτίβου σε μια συμβολοσειρά και, στη συνέχεια, αντικαταστήστε την αντιστοίχιση με το καθορισμένο κείμενο.
Ακολουθεί η σύνταξη για μια συνάρτηση κανονικής έκφρασης, όπως PHP preg_match (), PHP preg_split () ή PHP preg_replace ().
ΕΔΩ,
- Το "function_name (…)" είναι PHP preg_match (), PHP preg_split () ή PHP preg_replace ().
- "/… /" Οι περικοπές προς τα εμπρός υποδηλώνουν την αρχή και το τέλος της λειτουργίας PHP regex tester
- "" / pattern / '"είναι το μοτίβο που πρέπει να ταιριάξουμε
- Το "θέμα" είναι η συμβολοσειρά κειμένου προς αντιστοίχιση
Ας δούμε τώρα πρακτικά παραδείγματα που εφαρμόζουν τις παραπάνω συναρτήσεις PHP regex.
PHP Preg_match ()
Το πρώτο παράδειγμα χρησιμοποιεί το preg_match () στη λειτουργία PHP για να εκτελέσει μια απλή αντιστοίχιση μοτίβου για τη λέξη γκουρού σε μια δεδομένη διεύθυνση URL.
Ο παρακάτω κώδικας δείχνει την εφαρμογή για τη λειτουργία δοκιμασίας preg_match () για το παραπάνω παράδειγμα.
Αναζήτηση στη διεύθυνση URL http: //localhost/phptuts/preg_match_simple.php
Ας εξετάσουμε το μέρος του κώδικα που είναι υπεύθυνος για την παραγωγή μας "preg_match ('/ guru /', $ my_url)" ΕΔΩ,
- Το "preg_match (…)" είναι η συνάρτηση PHP regex
- Το "'/ guru /'" είναι το κανονικό μοτίβο έκφρασης που πρέπει να ταιριάζει
- Το "$ my_url" είναι η μεταβλητή που περιέχει το κείμενο προς αντιστοίχιση.
Το παρακάτω διάγραμμα συνοψίζει τα παραπάνω σημεία
PHP Preg_split ()
Ας δούμε τώρα ένα άλλο παράδειγμα που χρησιμοποιεί το preg_split () στη λειτουργία PHP.
Θα πάρουμε μια φράση συμβολοσειράς και θα την εκραγούμε σε έναν πίνακα. το μοτίβο που θα ταιριάζει είναι ένας ενιαίος χώρος.
Η συμβολοσειρά κειμένου που θα χρησιμοποιηθεί σε αυτό το παράδειγμα είναι το "I Love Regular Expressions".
Ο παρακάτω κώδικας απεικονίζει την εφαρμογή του παραπάνω παραδείγματος.
Περιηγηθείτε στη διεύθυνση URL http: //localhost/phptuts/preg_split.php
PHP Preg_replace ()
Ας δούμε τώρα το preg_replace () στη λειτουργία PHP που εκτελεί αντιστοίχιση μοτίβου και στη συνέχεια αντικαθιστά το μοτίβο με κάτι άλλο.
Ο παρακάτω κώδικας αναζητά τη λέξη γκουρού σε μια συμβολοσειρά.
Αντικαθιστά τη λέξη γκουρού με τη λέξη γκουρού που περιβάλλεται από κώδικα css που επισημαίνει το χρώμα του φόντου.
Υποθέτοντας ότι έχετε αποθηκεύσει το αρχείο preg_replace.php, πρόγραμμα περιήγησης στη διεύθυνση URL http: //localhost/phptuts/preg_replace.php
Μεταχαρακτήρες κανονικής έκφρασης
Τα παραπάνω παραδείγματα χρησιμοποίησαν πολύ βασικά μοτίβα. Οι μεταχαρακτήρες μας επιτρέπουν απλώς να κάνουμε πιο περίπλοκες αντιστοιχίσεις μοτίβου, όπως να ελέγξουμε την εγκυρότητα μιας διεύθυνσης email Ας δούμε τώρα τους κοινά χρησιμοποιούμενους χαρακτήρες.
Μεταχαρακτήρας | Περιγραφή | Παράδειγμα |
---|---|---|
. | Αντιστοιχεί σε έναν μόνο χαρακτήρα εκτός από μια νέα γραμμή | /./ ταιριάζει με οτιδήποτε έχει έναν μόνο χαρακτήρα |
^ | Ταιριάζει με την αρχή ή τη συμβολοσειρά / εξαιρεί χαρακτήρες | / PH / ταιριάζει με οποιαδήποτε συμβολοσειρά που ξεκινά με PH |
$ | Ταιριάζει μοτίβο στο τέλος της συμβολοσειράς | / com $ / ταιριάζει guru99.com, yahoo.com κ.λπ. |
* | Ταιριάζει με μηδενικούς (0) ή περισσότερους χαρακτήρες | / com * / ταιριάζει με υπολογιστή, επικοινωνία κ.λπ. |
+ | Απαιτείται οι προηγούμενοι χαρακτήρες να εμφανίζονται τουλάχιστον μία φορά | / yah + oo / ταιριάζει με το yahoo |
\ | Χρησιμοποιείται για τη διαφυγή μετα-χαρακτήρων | /yahoo+\.com/ αντιμετωπίζει την τελεία ως κυριολεκτική τιμή |
[…] | Κατηγορία χαρακτήρων | / [abc] / ταιριάζει με abc |
αζ | Ταιριάζει με πεζά γράμματα | / az / αγώνες δροσεροί, χαρούμενοι κ.λπ. |
ΑΖ | Ταιριάζει με κεφαλαία γράμματα | / AZ / ταιριάζει ΤΙ, ΠΩΣ, ΓΙΑΤΙ κ.λπ. |
0-9 | Ταιριάζει με οποιονδήποτε αριθμό μεταξύ 0 και 9 | / 0-4 / αγώνες 0,1,2,3,4 |
Η παραπάνω λίστα παρέχει μόνο τους πιο συχνά χρησιμοποιούμενους μεταχαρακτήρες σε κανονικές εκφράσεις.
Ας δούμε τώρα ένα αρκετά περίπλοκο παράδειγμα που ελέγχει την εγκυρότητα μιας διεύθυνσης email.
Εξηγώντας το μοτίβο "[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/] "
ΕΔΩ,
- Το "'/… /'" ξεκινά και τελειώνει την κανονική έκφραση
- Το "[a-zA-Z0-9 ._-]" αντιστοιχεί σε κεφαλαία ή κεφαλαία γράμματα, αριθμούς μεταξύ 0 και 9 και τελείες, κάτω παύλες ή παύλες.
- Το "+ @ [a-zA-Z0-9-]" αντιστοιχεί στο σύμβολο @ ακολουθούμενο από πεζά ή κεφαλαία γράμματα, αριθμούς μεταξύ 0 και 9 ή παύλες.
- "+ \. [a-zA-Z.] Το {2,5} $ /" ξεφεύγει από την τελεία χρησιμοποιώντας την ανάστροφη κάθετο και στη συνέχεια ταιριάζει με κάθε κεφαλαία ή κεφαλαία γράμματα με μήκος χαρακτήρων μεταξύ 2 και 5 στο τέλος της συμβολοσειράς.
Περιηγηθείτε στη διεύθυνση URL http: //localhost/phptuts/preg_match.php
Όπως μπορείτε να δείτε από το παραπάνω παράδειγμα ανάλυσης, οι μεταχαρακτήρες είναι πολύ ισχυροί όσον αφορά τα μοτίβα που ταιριάζουν.
Περίληψη
- Μια κανονική έκφραση ή Regex σε PHP είναι ένας αλγόριθμος αντιστοίχισης μοτίβων
- Οι τακτικές εκφράσεις είναι πολύ χρήσιμες κατά την εκτέλεση ελέγχων επικύρωσης, δημιουργώντας συστήματα προτύπων HTML που αναγνωρίζουν ετικέτες κ.λπ.
- Η PHP έχει ενσωματωμένες συναρτήσεις, δηλαδή PHP preg_match (), PHP preg_split () και PHP preg_replace () που υποστηρίζουν κανονικές εκφράσεις.
- Οι μεταχαρακτήρες μας επιτρέπουν να δημιουργήσουμε πολύπλοκα μοτίβα