..


Σύνδεσμοι διαφημιζόμενων

Κανονική Έκφραση για φίλτρο ISAPI Rewrite

Το άρθρο γράφτηκε από τον Max Bossi
Σελίδα 1 από 3

Σε ένα προηγούμενο άρθρο του φίλου και συναδέλφου μου, Luca Ruggiero είδαμε πώς να αρχίσουν να εργάζονται με το φίλτρο ISAPI για την επανασύνταξη του URLs στο IIS.

Το άρθρο αυτό στέκεται ως ένα είδος συνέχιση της πορείας που έχουν ήδη ξεκινήσει και έχει ως στόχο να εξηγήσει τη θεωρία λίγο », προκειμένου να σας επιτρέψει να γράψετε οδηγίες για επανασυγγραφή όλο και πιο σύνθετο και συνδέεται με τη στήριξη των κανονικών εκφράσεων.

Ειδικοί χαρακτήρες

Θα ξεκινήσουμε βλέποντας το cd. ειδικούς χαρακτήρες, δηλαδή οι χαρακτήρες που έχουν ειδική σημασία σε σχέση με το κλασικό κείμενο της αξίας τους:

Χαρακτήρας Έννοια
. Οποιοσδήποτε χαρακτήρας
* Μηδέν ή περισσότερες επαναλήψεις του χαρακτήρα προς τα αριστερά
+ Μία ή περισσότερες επαναλήψεις του χαρακτήρα προς τα αριστερά
; Ο χαρακτήρας προς τα αριστερά μπορεί να υπάρχουν ή να μην
| Επιλογή μεταξύ του τι είναι σωστό και το αριστερό
^ Επιστροφή στην αρχή της γραμμής ή το σύμβολο της άρνησης, αν χρησιμοποιηθεί μέσα σε ένα σύνολο χαρακτήρων
$ Τέλος της γραμμής
(Ε) Χρησιμοποιούνται για τη δημιουργία υπο-εκφράσεις, ή να προσδιορίσει τη μεταβλητή που θα κληθούν εν συνεχεία με $ N
{Και} Χρησιμοποιούνται για να δείξει το ελάχιστο και το μέγιστο μήκος του string προς τα αριστερά
[Και] Περιέχει ένα σύνολο χαρακτήρων

Μερικά παραδείγματα για να καταλάβουμε καλύτερα τη σημασία αυτών των ειδικών χαρακτήρων.
 



 .

 
Μέσα οποιονδήποτε χαρακτήρα και ως εκ τούτου δέχεται (uno!) κάθε χαρακτήρα.
 



 .*

 
Η παραπάνω σχέση είναι πάντα επαληθεύεται, γιατί δέχεται μια κενή συμβολοσειρά είναι οποιαδήποτε συμβολοσειρά, όπως συμβολισμό μας περιλαμβάνει μια επανάληψη επ 'αόριστον (από μηδέν έως άπειρο) του χαρακτήρες.
 



 αβ *

 
Η έκφραση αυτή έχει δοκιμαστεί με τα ακόλουθα αποτελέσματα: "α", "αβ", "ABB", "abbb", "abbbb ",...
 



 ab +

 
Παρουσιάζεται με «αβ", "ABB", "abbb ",... αλλά όχι με "a"!
 



 αβ;

 
Παρουσιάζεται με "a" ή "AB".
 



 {Ab} 2.4

 
Παρουσιάζεται με "ABB", "abbb", "abbbb".
 



 ^ Α. *

 
Παρουσιάζεται με οποιαδήποτε συμβολοσειρά που αρχίζει με το γράμμα "a"
 



 .* Z $

 
Παρουσιάζεται με οποιαδήποτε συμβολοσειρά που τελειώνει με το γράμμα "z"
 



 ^ C * δολάρια

 
Παρουσιάζεται με οποιαδήποτε συμβολοσειρά που αρχίζει με "c" και τελειώνει με το γράμμα "α". Για παράδειγμα: "σπίτι", "Βίβλος", "κόλλα", κλπ..
 



 abc | def

 
Παρουσιάζεται με "abc" ή με "def"
 



 α (β | γ)

 
Παρουσιάζεται με «αβ" ή με "AC". Για να επιτευχθεί αυτό χρησιμοποιήσαμε ένα ζευγάρι από παρενθέσεις για να δημιουργήσετε ένα υπο-έκφραση σε περισυλλογή, στο παράδειγμά μας, η επιλογή μεταξύ "b" και "C"
 



 [AZ]

 
Με τη χρήση των αγκυλών έχουμε δημιουργήσει ένα σύνολο χαρακτήρων. Στο παράδειγμά μας έχουμε δώσει μία σειρά από χαρακτήρες που κυμαίνονται από "Α" έως "z" και στη συνέχεια να αγκαλιάζει ολόκληρο το αλφάβητο.
Σημειώστε ότι η χρήση του «Ζ» δεν είναι ίσο με το «Ζ», όπως στην πρώτη περίπτωση θα ταιριάξουμε μόνο πεζά γράμματα στην τελευταία αυτή μόνο με την υπόθεση.
 



 [A-Za-z]

 
Η παραπάνω σχέση, όμως, μας δείχνει πώς να αποδεχθεί όλες αυτές τις χαρακτήρες αλφαβήτου είναι case-insensitive.
 



 [0-9]

 
Η έκφραση αυτή περιλαμβάνει οποιοδήποτε αριθμό μεταξύ 0 και 9.

 



 [^ 0-9]

 
Η έκφραση αυτή περιλαμβάνει οποιονδήποτε χαρακτήρα εκτός από τους αριθμούς. Το κάναμε αυτό με τη χρήση άρνηση, στην αρχή του σετ μας, το ειδικό ^ χαρακτήρα.

Προφανώς, την οργάνωση και τις διάφορες παραπάνω παράδειγμα θα παρατηρήσετε ότι είναι δυνατόν να προβλεφθεί μια σχεδόν άπειρες δυνατότητες.

Τέλος, φυσικά, πρέπει να εξετάσουμε το ενδεχόμενο ότι οι χαρακτήρες είδαμε παραπάνω μπορούμε να εξυπηρετήσουμε στην κλασική αξία τους, δηλαδή ως απλοί χαρακτήρες. Σε αυτή την περίπτωση θα κάνουμε χρήση του χαρακτήρα διαφυγής (\) πριν από τον ειδικό χαρακτήρα που θέλετε να χρησιμοποιήσετε ως ένα κοινό χαρακτήρα.
Για παράδειγμα, βλέπουμε πώς να γράψει, με τη μορφή esepressione, το string "page.html". Όπως γνωρίζουμε το σημείο είναι ένα ιδιαίτερο χαρακτήρα και, ως εκ τούτου, εύκολο στη χρήση, όπως ένα σημείο που πρέπει να κάνουμε αυτό:

 



 σελίδα \. html

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



 \ \

 

Στην ίδια κατηγορία ...
E-Learning
ASP (Advanced) ASP (Advanced)
Η πλήρης σειρά μαθημάτων για τη δημιουργία δυναμικών ιστοσελίδων. Από 39 €.
ASP Zero (ebook) ASP Zero (ebook)
Μαθαίνοντας Microsoft ASP και VBScript από το μηδέν. Σε μόνο 29 €.
ASP.NET (Μάθημα) ASP.NET (Μάθημα)
Πλήρης πορεία για τη δημιουργία εφαρμογών Web από 49 €.
Σύνδεσμοι διαφημιζόμενων