Γρήγορη αναφορά

Regex Cheat Sheet (Κανονικές Εκφράσεις)

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

Δημοσιεύτηκε

Αντιστοίχιση Χαρακτήρων

[abc] Αντιστοιχεί σε οποιονδήποτε χαρακτήρα μεταξύ των a, b ή c
[^abc] Δεν αντιστοιχεί στους χαρακτήρες a, b ή c. Το «^» ισχύει μόνο όταν εμφανίζεται ως ο πρώτος χαρακτήρας
[a-g] Αντιστοιχεί σε οποιονδήποτε χαρακτήρα στο εύρος a-g
[^a-g] Δεν αντιστοιχεί σε κανέναν χαρακτήρα στο εύρος a-g
[H-N] Αντιστοιχεί σε οποιονδήποτε χαρακτήρα στο εύρος H-N
[0-9] Αντιστοιχεί σε οποιονδήποτε χαρακτήρα στο εύρος 0-9
[a-gH-N] Αντιστοιχεί σε οποιονδήποτε χαρακτήρα στα εύρη a-g ή H-N
Wildcards:
. [^\n\r], αντιστοιχεί σε οποιονδήποτε χαρακτήρα εκτός από την αλλαγή γραμμής
\s whitespace: αλλαγή γραμμής, tab, κενό κ.λπ.
\S [^\s] (Οτιδήποτε εκτός από whitespace)
\d ψηφίο: [0-9]
\D [^\d] (Οτιδήποτε εκτός από ψηφίο)
\w χαρακτήρας λέξης: [0-9A-Za-z_]
\W [^\w] (Οτιδήποτε εκτός από χαρακτήρα λέξης)

Αντιστοίχιση Ομάδων

(a b)
(...) Ομάδα καταγραφής
(?:...) Ομάδα μη καταγραφής
(?<name>...) ή (?'name'...) Ονομασμένη ομάδα καταγραφής, το «name» μπορεί να προσαρμοστεί
(?(condition)true_regex false_regex)

Η group(0) χρησιμοποιείται για τη λήψη ολόκληρης της συμβολοσειράς αντιστοίχισης, ενώ η group(>0) μπορεί να λάβει υπο-ομάδες καταγραφής από το συνολικό αποτέλεσμα.

Σημείωση: Οι ονομασμένες ομάδες καταγραφής υποστηρίζονται από την Java 1.7 και μετά (περνώντας τη συμβολοσειρά name ως παράμετρο στη μέθοδο group). Η JS και η Python προς το παρόν δεν υποστηρίζουν εγγενώς ονομασμένες ομάδες καταγραφής.

Εύρος Συχνοτήτων (Ποσοδείκτες)

{3} Το προηγούμενο στοιχείο εμφανίζεται ακριβώς 3 φορές, ισοδύναμο με {3,3}
{3,6} Το προηγούμενο στοιχείο εμφανίζεται 3 έως 6 φορές
{3,} Το προηγούμενο στοιχείο εμφανίζεται τουλάχιστον 3 φορές
{0,6} Το προηγούμενο στοιχείο εμφανίζεται το πολύ 6 φορές
Wildcards:
* {0,} (Μηδέν ή περισσότερες)
+ {1,} (Μία ή περισσότερες)
? {0,1} (Μηδέν ή μία)
\w* Greedy mode (Άπληστη λειτουργία)
\w*? Non-greedy mode

Άγκυρες (Σημεία Σταθεροποίησης)

^ Αρχή συμβολοσειράς
$ Τέλος συμβολοσειράς
\b Boundary, όριο λέξης
\B Όχι όριο λέξης
Lookaround Assertions:
(?=exp) Θετική πρόβλεψη (Positive lookahead - επίθημα exp)
(?<=exp) Θετική αναδρομή (Positive lookbehind - πρόθημα exp)
(?!exp) Αρνητική πρόβλεψη (Negative lookahead - χωρίς επίθημα exp)
(?<!exp) Αρνητική αναδρομή (Negative lookbehind - χωρίς πρόθημα exp)

Η \b(\w+)\b είναι ισοδύναμη με την (?<=\W?)(\w+)(?=\W?)

Σχετικά θέματα