Έλεγχος συμβολοσειράς με κανονική έκφραση στην PHP
Οι δυνατότητες των κανονικών εκφράσεων δεν περιορίζονται
μόνο στην αναζήτηση και αντικατάσταση. Υπάρχει επίσης η συνάρτηση
preg_match,
που ελέγχει αν μια συμβολοσειρά ταιριάζει
με μια κανονική έκφραση. Η συνάρτηση δέχεται ως πρώτη παράμετρο
την κανονική έκφραση και ως δεύτερη - τη συμβολοσειρά για
αναζήτηση.
Σε αυτήν την περίπτωση, αν υπάρχουν πολλά ταιριάσματα,
η συνάρτηση θα βρει μόνο το πρώτο και θα τερματίσει τη
δουλειά της. Επομένως, η συνάρτηση επιστρέφει είτε 1,
είτε 0 και χρησιμοποιείται για να απαντήσει στην
ερώτηση 'υπάρχει αυτό που ψάχνω στη συμβολοσειρά ή όχι'.
Επιστρέφει ένα - σημαίνει ότι υπάρχει (πόσες φορές
- δεν είναι ξεκάθαρο), επιστρέφει μηδέν - σημαίνει ότι δεν υπάρχει.
Ας δούμε παραδείγματα. Ας ελέγξουμε
αν υπάρχει στη συμβολοσειρά μια υποσυμβολοσειρά που αποτελείται από
το γράμμα 'a', που επαναλαμβάνεται μία ή περισσότερες φορές:
<?php
echo preg_match('#a+#', 'eee aaa bbb'); // θα εκτυπώσει 1
?>
Τώρα στη συμβολοσειρά μας δεν υπάρχει αυτό που ψάχναμε, και η συνάρτηση
θα εκτυπώσει 0:
<?php
echo preg_match('#a+#', 'eee bbb'); // θα εκτυπώσει 0
?>
Προσδιορίστε αν υπάρχουν 3 ψηφία
στη σειρά στη συμβολοσειρά.
Προσδιορίστε αν η συμβολοσειρά που μεταβιβάστηκε
ξεκινά με http.
Προσδιορίστε αν η συμβολοσειρά που μεταβιβάστηκε
ξεκινά με http ή με https.
Προσδιορίστε αν η συμβολοσειρά που μεταβιβάστηκε
τελειώνει με την επέκταση txt, html ή php.
Προσδιορίστε αν η συμβολοσειρά που μεταβιβάστηκε
τελειώνει με την επέκταση jpg ή jpeg.