Κανονικές εκφράσεις εξαπατήσει το φύλλο
Εάν εργάζεστε με κείμενο, θα εκτιμήσετε πόσο χρήσιμες είναι οι κανονικές εκφράσεις. Οι τακτικές εκφράσεις είναι παντού στο Linux για αναζήτηση μέσα από κείμενο μέχρι το χαρακτήρα. Αυτό το άρθρο στοχεύει να παρέχει ένα μικρό "εξαπατήσει φύλλο" για τους ανθρώπους που χρειάζονται απλά μια μικρή ανανέωση από καιρό σε καιρό.
Εάν χρειάζεστε κάποια εισαγωγή στις κανονικές εκφράσεις, ανατρέξτε στον οδηγό για αρχάριους εδώ.
Χαρακτήρας | Περιγραφή | Παράδειγμα |
---|---|---|
. (τελεία) | Ταίριασμα κάθε μοναδικού χαρακτήρα, εκτός από τη νέα γραμμή (\ n) | ct αντιστοιχεί σε "γάτα", "κοπεί" ή "κούνια". |
* (αστέρι) | Επαναλάβετε την προηγούμενη παράσταση 0 ή περισσότερες φορές (απληστία) | 12*3 αγώνες "13", "123", "1223", "12223". Μπορεί να χρησιμοποιηθεί μαζί με. (κουκκίδα), όπως m.*easier αντιστοιχία "maketecheasier". Χρησιμοποιώντας .* Από μόνη της δεν έχει νόημα καθώς ταιριάζει με τα πάντα και επιστρέφει το πλήρες αποτέλεσμα. |
+ (συν) | Επαναλάβετε την προηγούμενη έκφραση 1 ή περισσότερες φορές. | 12+3 αντιστοιχίες "123", "1223", "12223" |
; (ερωτηματικό) | Κάνει το προηγούμενο στοιχείο προαιρετικό. | ma?ke αντιστοιχεί "make", "mke" |
^ (κρέμα) | Ταίριασμα από την αρχή της συμβολοσειράς | ^he ταιριάζει "γεια", "κόλαση", "βοήθεια", "είναι αγόρι" |
$ (δολάριο) | Ταίριασμα από το τέλος της συμβολοσειράς | ed$ ταιριάζει "ενήργησε", κρεβάτι ", " απληστία " |
(...) (στρογγυλό βραχίονα) | Ομαδοποίηση χαρακτήρων ή έκφρασης | (ak) αντιστοιχεί σε "make", "take", " |
{n} (σγουρά, όπου το n είναι ακέραιος μεγαλύτερος από 0) | Ταίριασμα του προηγούμενου στοιχείου ακριβώς n φορές | 12{3}5 αντιστοιχίσεις "12225" |
[...] (αγκύλη) | αντιστοιχίσετε έναν μόνο χαρακτήρα στη βάση | [abc] αντιστοιχεί στο "a", "b" ή "c" στη συμβολοσειρά "abc". |
[^ ...] | Ταιριάζει με οποιονδήποτε χαρακτήρα εκτός από εκείνους που ορίζονται στη βάση | a[^b]c αντιστοιχεί σε "aec", "acc", "adc", αλλά όχι "abc" |
| (σωλήνας) | Ταίριασμα είτε της έκφρασης στα αριστερά ή δεξιά του σωλήνα. | col(o|ou)r αντιστοιχεί σε "χρώμα", "χρώμα" |
- (υπεν) | Καθορίστε ένα εύρος χαρακτήρων που να ταιριάζουν. Χρησιμοποιείται κυρίως στα [az], [AZ], [1-9], [a-zA-Z1-9] | a[az]c αντιστοιχεί σε "abc", "acc", "adc" |
\ (αντίστροφη κάθετος) | Αποδράστε από έναν ιδιαίτερο χαρακτήρα και μετατρέψτε τον σε ένα συνηθισμένο χαρακτήρα. | a\*c ταιριάζει "a * c". |
\ n, \ r, \ t | αντιστοίχιση μιας νέας γραμμής, επιστροφής και χαρακτήρα καρτέλας αντίστοιχα | |
\ΒΒ | Ταίριασμα μιας λέξης μέσα στο όριο. | \bTech\b ταιριάζει με τη λέξη "Tech" στο "Make Tech Eas". |
Μερικά πιο πολύπλοκα παραδείγματα
Ταίριασμα ενός ορισμένου αριθμού χαρακτήρων .
Ακολουθεί ένα παράδειγμα για τον αριθμό τηλεφώνου των ΗΠΑ, χωρίς να υπολογίζεται ο κωδικός περιοχής:
[0-9] {3} - [0-9] {4}
Αυτό θα αντιστοιχεί σε οποιοδήποτε αριθμό τηλεφώνου της μορφής "111-1111".
Δημιουργία προτύπου προαιρετικό
Ακολουθεί πάλι το παράδειγμα τηλεφωνικού αριθμού των ΗΠΑ, αυτή τη φορά με προαιρετικούς κωδικούς περιοχής. Υποθέτουμε ότι το αρχείο με τους αριθμούς τηλεφώνου που αναζητούμε έχει αριθμούς τηλεφώνου δομημένους ως εξής: 555-555-5555. Ο χειριστής "?" Υποδηλώνει ένα προαιρετικό πρότυπο που προηγείται.
([0-9] {3} -) β [0-9] {3} - [0-9] {4}
Σίγουρα, είναι λίγο άσχημο, καθώς οι τακτικές εκφράσεις τείνουν να είναι, αλλά είναι πολύ ισχυρές.
Εύρεση εύρους χαρακτήρων :
{1, 3}
Αυτό θα αντιστοιχεί σε οποιονδήποτε χαρακτήρα μεταξύ 1 και 3 φορές.
Κατεβάστε Regular Expressions Cheat Sheet
Δεν μπορεί να πάρει αρκετό από αυτό; Έχουμε ετοιμάσει ένα downloadable cheat sheet για εσάς έτσι μπορείτε να έχετε πρόσβαση σε αυτό όταν το χρειάζεστε.
Κατεβάστε το εδώ.