⊗ppPmRgSHy 238 of 447 menu

Παύλα εντός συνόλων στις κανονικές εκφράσεις της PHP

Η παύλα - είναι επίσης ειδικός χαρακτήρας εντός [] (ενώ έξω - όχι). Εάν χρειάζεστε την ίδια την παύλα ως χαρακτήρα - τότε τοποθετήστε την σε θέση, όπου δεν θα γίνει αντιληπτή ως διαχωριστής ομάδας.

Γιατί αυτό είναι σημαντικό: μπορείτε να δημιουργήσετε μια ομάδα χαρακτήρων, χωρίς να το καταλάβετε. Για παράδειγμα, έτσι - [:-@] - εσείς νομίζετε ότι επιλέγετε την άνω και κάτω τελεία, την παύλα και το σύμβολο @, αλλά στην πραγματικότητα προκύπτει μια ομάδα χαρακτήρων μεταξύ : και @. Σε αυτήν την ομάδα περιλαμβάνονται οι ακόλουθοι χαρακτήρες: :, ;, ?, <, =, >.

Από πού προέρχονται; Από τον πίνακα ASCII - η άνω και κάτω τελεία έχει μικρότερο αριθμό από το σύμβολο @ - και προκύπτει ομάδα. Δηλαδή όλες οι ομάδες προκύπτουν βάσει του πίνακα ASCII (αν θέλετε μπορείτε να το χρησιμοποιήσετε αυτό).

Πώς να το αντιμετωπίσετε: τοποθετήστε τον χαρακτήρα παύλας σε θέση, όπου σίγουρα δεν θα γίνει αντιληπτός ως χαρακτήρας ομάδας, για παράδειγμα, στην αρχή ή στο τέλος (δηλαδή μετά το [ ή πριν από το ]).

Μπορείτε επίσης να δώσετε escape στην παύλα - τότε θα συμβολίζει τον εαυτό της ανεξάρτητα από τη θέση. Για παράδειγμα, αντί για [:-@] να γράψετε [:\-@] - και δεν θα υπάρχει πλέον ομάδα, αλλά θα υπάρχουν τρεις χαρακτήρες - άνω και κάτω τελεία, παύλα και σύμβολο @.

Παράδειγμα

Στο επόμενο παράδειγμα το μοτίβο αναζήτησης είναι το εξής: ψηφίο 1, στη συνέχεια γράμμα από 'a' έως 'z', στη συνέχεια ψηφίο 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a-z]2#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! 1-2 ! !'

Παράδειγμα

Ας κάνουμε τώρα escape στην παύλα. Στο αποτέλεσμα το μοτίβο αναζήτησης είναι το εξής: ψηφίο 1, στη συνέχεια γράμμα 'a', ή παύλα, ή γράμμα 'z', στη συνέχεια ψηφίο 2:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[a\-z]2#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! ! 1c2 !'

Παράδειγμα

Μπορείτε απλά να μετακινήσετε την παύλα, χωρίς να της κάνετε escape:

<?php $str = '1a2 1-2 1c2 1z2'; $res = preg_replace('#1[az-]2#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! ! 1c2 !'

Παράδειγμα

Στο επόμενο παράδειγμα το μοτίβο αναζήτησης είναι το εξής: πρώτος χαρακτήρας - αυτός είναι μικρά γράμματα ή παύλα '-', μετά δύο γράμματα 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-z-]xx#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! Axx ! @xx'

Παράδειγμα

Στο επόμενο παράδειγμα το μοτίβο αναζήτησης είναι το εξής: πρώτος χαρακτήρας - αυτός είναι μικρά, κεφαλαία γράμματα ή παύλα '-', μετά δύο γράμματα 'x':

<?php $str = 'axx Axx -xx @xx'; $res = preg_replace('#[a-zA-Z-]xx#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! ! ! @xx'

Παράδειγμα

Μπορείτε να τοποθετήσετε την παύλα ανάμεσα σε δύο ομάδες - εκεί σίγουρα δεν θα δημιουργήσει μια ακόμη ομάδα:

<?php $str = 'axx 9xx -xx @xx'; $res = preg_replace('#[a-z-0-9]xx#', '!', $str); ?>

Στο αποτέλεσμα στη μεταβλητή θα καταγραφεί το εξής:

'! ! ! @xx'

Πρακτικές ασκήσεις

Δίνεται μια συμβολοσειρά:

<?php $str = 'xaz xBz xcz x-z x@z'; ?>

Βρείτε όλες τις συμβολοσειρές σύμφωνα με το ακόλουθο μοτίβο: γράμμα 'x', κεφαλαίο ή μικρό γράμμα ή παύλα, γράμμα 'z'.

Δίνεται μια συμβολοσειρά:

<?php $str = 'xaz x$z x-z xcz x+z x%z x*z'; ?>

Βρείτε όλες τις συμβολοσειρές σύμφωνα με το ακόλουθο μοτίβο: γράμμα 'x', στη συνέχεια ή δολάριο, ή παύλα ή συν, μετά γράμμα 'z'.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη