..


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

Κανονικές εκφράσεις σε C #

Το άρθρο γράφτηκε από τον Vincenzo Gaglio
Σελίδα 1 από 4

Πολύ συχνά, οι προγραμματιστές είναι σε θέση να χρειάζεται να αναλύσει ακολουθίες χαρακτήρων. Μια χαρακτηριστική περίπτωση είναι κατά την επεξεργασία ενός κειμένου εισάγει ένας χρήστης για την αναζήτηση - και τελικά την εξάλειψη - ορισμένους χαρακτήρες.
Για την απλοποίηση αυτό και άλλα είδη δραστηριοτήτων, φαίνεται να είναι πολύ χρήσιμο λεγόμενες κανονικές εκφράσεις.

Μια κανονική έκφραση αποτελείται από ένα «αφηρημένο μοντέλο» της μια συμβολοσειρά που χρησιμοποιείται για να κάνει συγκρίσεις για να βεβαιωθείτε ότι η σύγκριση συμβολοσειράς πληροί ορισμένες απαιτήσεις μορφοποίησης. «E μπορούν επίσης να χρησιμοποιήσουν τις συνήθεις εκφράσεις για να εξαγάγετε ή να αντικαταστήσει τμήματα του κειμένου.

(Το άρθρο συνεχίζεται παρακάτω ...)

Ας δούμε ένα παράδειγμα που προορίζεται για να δείξει πώς αυτές τις εκφράσεις. Χρησιμοποιώντας το Visual Studio δημιουργήσετε μια απλή εφαρμογή κονσόλας (αυτό που λέμε TestRegExp) που θα λαμβάνει δύο αντικείμενα τύπου String σαν είσοδο και καθορίζει αν η πρώτη από αυτές (μια κανονική έκφραση) αγώνες ανά δευτερόλεπτο ή λιγότερο. Θα πρέπει να συμπεριλάβει στην System.Text.RegularExpressions ονομάτων και να κάνετε τη σύγκριση με τη χρήση σταθερών System.Text.RegularExpressions.Regex.IsMatch






 χρησιμοποιώντας System.Text.RegularExpressions?

 





 namespace TestRegExp

 





 {

 





 τάξη ClasseTest

 





 {

 





 στατική άκυρη κύρια (String [] args)

 





 {

 





 αν (Regex.IsMatch (args [1], args [0]))

 





 Console.WriteLine ("Η είσοδος μορφή την οποία ορίζει τις απόψεις.")?

 





 αλλού

 





 Console.WriteLine («Η είσοδος δεν σέβεται την συγκεκριμένη μορφή .");}}}



Σε αυτό το σημείο, θα εκτελέσει την αίτηση, όπως την πρώτη παράμετρο και να περάσει στην κανονική έκφραση "^ \ d {5} $" (θα δούμε σύντομα την έννοια των ερωτήσεων σύμβολα) και το δεύτερο ως το string "1234" ή "12345". Η έξοδος από την εφαρμογή στην περίπτωση του string "1234" θα πρέπει να είναι "Η είσοδος δεν σέβεται την συγκεκριμένη μορφή.», Ενώ στην περίπτωση των "12345" ορίζεται η μορφή της εισόδου απόψεις. "






 C: \> TestRegExp ^ \ d {5} $ 1234

 





 Η είσοδος δεν σέβεται την καθορισμένη μορφή.

 







 C: \> TestRegExp ^ \ d {5} $ 12345

 





 Η μορφή της εισόδου ορίζεται απόψεις.



Αυτό συμβαίνει επειδή, όπως έχετε ήδη καταλάβει, η μέθοδος συγκρίνει IsMatch μια κανονική έκφραση με μια σειρά και επιστρέφει μια Boolean τιμή TRUE εάν η μορφή είναι υπαγορεύεται από το πρώτο που παρατηρήθηκε από το δεύτερο, ψευδής διαφορετικά. Στο παραπάνω παράδειγμα, η κανονική έκφραση "^ \ d {5} $" δηλώνει ότι η συμβολοσειρά που πρέπει να αξιολογηθούν πρέπει να είναι ακριβώς 5 αριθμούς (στην πραγματικότητα, η σύγκριση με το "1234" επιστρέφει False).

Πιο συγκεκριμένα ο χαρακτήρας "^" αντιπροσωπεύει την αρχή του string, "\ d" δείχνει ότι οι χαρακτήρες πρέπει να είναι αριθμητικό, "{5}" δηλώνει το μήκος της χορδής και το "$" αντιπροσωπεύει το τέλος του string. Εάν αφαιρέσετε τον χαρακτήρα "^" κανονική έκφραση αλλάζει την έννοια του βαθιά. Στην πραγματικότητα, η έκφραση \ d {5} $ θα απαιτεί πάντα την παρουσία των πέντε αριθμούς στη σειρά, αλλά και την επικύρωση των χορδών "abcd12345" ή "ciaociao12345", επειδή η σημασία του είναι "συμβολοσειρά που τελειώνει με πέντε διαδοχικούς αριθμούς."

Ένας καλός κανόνας είναι να βάζουμε πάντα το χαρακτήρα "^" στην αρχή μια κανονική έκφραση και το χαρακτήρα "$" στο τέλος αυτού. Η ρύθμιση αυτή διασφαλίζει ότι η είσοδος πρέπει να ταιριάζει ακριβώς στην κανονική έκφραση και όχι απλώς να περιέχουν συμβατά με τους ίδιους χαρακτήρες.

Στην ίδια κατηγορία ...
E-Learning
Γήπεδο E-Commerce με ASP Γήπεδο E-Commerce με ASP
Δημιουργήστε μια ιστοσελίδα από την αρχή του ηλεκτρονικού εμπορίου με ASP. Μόνο 35 €.
Java Course Java Course
OOP προγραμματισμό σε Java Κυρ Έκπτωση -10% μέχρι 06/01/2012.
Linux Μάθημα Linux Μάθημα
Πλήρης οδηγός για την open-source σύστημα. Έκπτωση -10% μέχρι 06/01/2012.
Σύνδεσμοι διαφημιζόμενων