Δοκιμάστε κανονικές εκφράσεις με επισημάνσεις αντιστοίχισης σε πραγματικό χρόνο, έλεγχο προτύπων και εξηγήσεις κοινών συμβόλων regex. Αποθηκεύστε και επαναχρησιμοποιήστε τα συχνά χρησιμοποιούμενα πρότυπά σας με προσαρμοσμένες ετικέτες.
Εισάγετε ένα μοτίβο και κείμενο δοκιμής για να δείτε τα αποτελέσματα
Εισάγετε ένα μοτίβο και κείμενο δοκιμής για να δείτε τα αποτελέσματα
Δεν υπάρχουν αποθηκευμένα μοτίβα ακόμα
.
Αντιστοιχεί σε οποιονδήποτε χαρακτήρα εκτός από νέα γραμμή\d
Αντιστοιχεί σε οποιονδήποτε ψηφίο (0-9)\D
Αντιστοιχεί σε οποιονδήποτε μη ψηφίο\w
Αντιστοιχεί σε οποιονδήποτε χαρακτήρα λέξης (a-z, A-Z, 0-9, _)\W
Αντιστοιχεί σε οποιονδήποτε μη χαρακτήρα λέξης\s
Αντιστοιχεί σε οποιονδήποτε χαρακτήρα κενής θέσης\S
Αντιστοιχεί σε οποιονδήποτε μη χαρακτήρα κενής θέσης^
Αντιστοιχεί στην αρχή της γραμμής$
Αντιστοιχεί στο τέλος της γραμμής*
Αντιστοιχεί σε 0 ή περισσότερους από τον προηγούμενο χαρακτήρα+
Αντιστοιχεί σε 1 ή περισσότερους από τον προηγούμενο χαρακτήρα?
Αντιστοιχεί σε 0 ή 1 από τον προηγούμενο χαρακτήρα{n}
Αντιστοιχεί ακριβώς σε n από τον προηγούμενο χαρακτήρα{n,}
Αντιστοιχεί τουλάχιστον σε n από τον προηγούμενο χαρακτήρα{n,m}
Αντιστοιχεί μεταξύ n και m από τον προηγούμενο χαρακτήρα[abc]
Αντιστοιχεί σε οποιονδήποτε από τους χαρακτήρες στις αγκύλες[^abc]
Αντιστοιχεί σε οποιονδήποτε χαρακτήρα που δεν είναι στις αγκύλες(abc)
Ομαδοποιεί πολλαπλά tokens μαζί και καταγράφει την αντιστοίχισηa|b
Αντιστοιχεί είτε σε a είτε σε b\b
Αντιστοιχεί σε μια θέση ορίου λέξηςΈνα εργαλείο δοκιμής κανονικών εκφράσεων (regex) είναι ένα απαραίτητο εργαλείο για προγραμματιστές, αναλυτές δεδομένων και οποιονδήποτε εργάζεται με επεξεργασία κειμένου. Αυτή η ολοκληρωμένη επικυρωτής κανονικών εκφράσεων σας επιτρέπει να δημιουργείτε, να δοκιμάζετε και να βελτιώνετε κανονικές εκφράσεις σε πραγματικό χρόνο, παρέχοντας άμεση οπτική ανατροφοδότηση σχετικά με τις αντιστοιχίες προτύπων. Είτε επικυρώνετε διευθύνσεις email, είτε αναλύετε αρχεία καταγραφής, είτε εξάγετε συγκεκριμένα δεδομένα από κείμενο, το εργαλείο μας για κανονικές εκφράσεις καθιστά τη διαδικασία ανάπτυξης και αποσφαλμάτωσης ταχύτερη και πιο διαισθητική.
Οι κανονικές εκφράσεις είναι ισχυρές ακολουθίες αντιστοίχισης προτύπων που επιτρέπουν προηγμένες αναζητήσεις κειμένου, επικυρώσεις και χειρισμούς. Ωστόσο, η σύνταξή τους μπορεί να είναι πολύπλοκη και δύσκολη στην κατανόηση. Αυτό το εργαλείο δοκιμής κανονικών εκφράσεων απλοποιεί τη διαδικασία επισημαίνοντας τις αντιστοιχίες καθώς πληκτρολογείτε, επικυρώνοντας τη σύνταξη του προτύπου και επιτρέποντάς σας να αποθηκεύσετε συχνά χρησιμοποιούμενα πρότυπα για μελλοντική αναφορά.
Η χρήση του επικυρωτή κανονικών εκφράσεων είναι απλή και διαισθητική. Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε:
Εισάγετε ένα Πρότυπο Κανονικής Έκφρασης: Πληκτρολογήστε το πρότυπο regex σας στο καθορισμένο πεδίο εισόδου. Το εργαλείο επικυρώνει το πρότυπό σας σε πραγματικό χρόνο, ειδοποιώντας σας για τυχόν σφάλματα σύνταξης.
Επιλέξτε Σημαίες Regex: Επιλέξτε τις κατάλληλες σημαίες για το πρότυπό σας:
g
(Παγκόσμια): Βρείτε όλες τις αντιστοιχίες αντί να σταματήσετε μετά την πρώτη αντιστοιχίαi
(Αδιάφορο Περίπτωση): Κάντε το πρότυπο αδιάφορο στην περίπτωσηm
(Πολλαπλές Γραμμές): Κάντε το ^
και $
να αντιστοιχούν στην αρχή/τέλος κάθε γραμμήςΕισάγετε Δοκιμαστικό Κείμενο: Εισάγετε το κείμενο που θέλετε να δοκιμάσετε σε σχέση με το πρότυπό σας στην περιοχή δοκιμαστικού κειμένου.
Δείτε τα Αποτελέσματα σε Πραγματικό Χρόνο: Καθώς πληκτρολογείτε, το εργαλείο αυτόματα:
Αποθηκεύστε Χρήσιμα Πρότυπα: Για πρότυπα που χρησιμοποιείτε συχνά:
Αντιγράψτε τα Αποτελέσματα: Χρησιμοποιήστε το κουμπί "Αντιγραφή Αντιστοιχιών" για να αντιγράψετε όλο το κείμενο που έχει αντιστοιχιστεί στο πρόχειρο σας για χρήση σε άλλες εφαρμογές.
Η διεπαφή χωρίζεται σε δύο κύριες περιοχές: την περιοχή εισόδου όπου εισάγετε το πρότυπό σας και το δοκιμαστικό κείμενο, και την περιοχή αποτελεσμάτων που εμφανίζει τις αντιστοιχίες και τις πληροφορίες του προτύπου.
Οι κανονικές εκφράσεις χρησιμοποιούν ειδικούς χαρακτήρες και ακολουθίες για να ορίσουν πρότυπα αναζήτησης. Ακολουθεί ένας οδηγός με τα θεμελιώδη σύμβολα regex που υποστηρίζονται από το εργαλείο μας:
Σύμβολο | Περιγραφή | Παράδειγμα | Αντιστοιχεί |
---|---|---|---|
. | Αντιστοιχεί σε οποιονδήποτε χαρακτήρα εκτός από νέα γραμμή | a.c | "abc", "adc", "a1c", κ.λπ. |
\d | Αντιστοιχεί σε οποιονδήποτε ψηφίο (0-9) | \d{3} | "123", "456", "789", κ.λπ. |
\D | Αντιστοιχεί σε οποιονδήποτε μη ψηφίο | \D+ | "abc", "xyz", κ.λπ. |
\w | Αντιστοιχεί σε οποιονδήποτε χαρακτήρα λέξης (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123", κ.λπ. |
\W | Αντιστοιχεί σε οποιονδήποτε μη χαρακτήρα λέξης | \W+ | "!@#", " + ", κ.λπ. |
\s | Αντιστοιχεί σε οποιονδήποτε χαρακτήρα κενής θέσης | a\sb | "a b", "a\tb", κ.λπ. |
\S | Αντιστοιχεί σε οποιονδήποτε μη χαρακτήρα κενής θέσης | \S+ | "abc", "123", κ.λπ. |
Σύμβολο | Περιγραφή | Παράδειγμα | Αντιστοιχεί |
---|---|---|---|
^ | Αντιστοιχεί στην αρχή της γραμμής | ^abc | "abc" στην αρχή μιας γραμμής |
$ | Αντιστοιχεί στο τέλος της γραμμής | abc$ | "abc" στο τέλος μιας γραμμής |
\b | Αντιστοιχεί σε όριο λέξης | \bword\b | "word" ως πλήρης λέξη |
Σύμβολο | Περιγραφή | Παράδειγμα | Αντιστοιχεί |
---|---|---|---|
* | Αντιστοιχεί σε 0 ή περισσότερους από τον προηγούμενο χαρακτήρα | a*b | "b", "ab", "aab", κ.λπ. |
+ | Αντιστοιχεί σε 1 ή περισσότερους από τον προηγούμενο χαρακτήρα | a+b | "ab", "aab", "aaab", κ.λπ. |
? | Αντιστοιχεί σε 0 ή 1 από τον προηγούμενο χαρακτήρα | colou?r | "color", "colour" |
{n} | Αντιστοιχεί ακριβώς σε n από τον προηγούμενο χαρακτήρα | a{3} | "aaa" |
{n,} | Αντιστοιχεί τουλάχιστον σε n από τον προηγούμενο χαρακτήρα | a{2,} | "aa", "aaa", "aaaa", κ.λπ. |
{n,m} | Αντιστοιχεί μεταξύ n και m από τον προηγούμενο χαρακτήρα | a{2,4} | "aa", "aaa", "aaaa" |
Σύμβολο | Περιγραφή | Παράδειγμα | Αντιστοιχεί |
---|---|---|---|
[abc] | Αντιστοιχεί σε οποιονδήποτε από τους χαρακτήρες στα αγκύλες | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Αντιστοιχεί σε οποιονδήποτε χαρακτήρα που δεν είναι στα αγκύλες | [^aeiou] | Οποιοσδήποτε χαρακτήρας εκτός από "a", "e", "i", "o", "u" |
[a-z] | Αντιστοιχεί σε οποιονδήποτε χαρακτήρα στην περιοχή | [a-z] | Οποιοδήποτε μικρό γράμμα |
Σύμβολο | Περιγραφή | Παράδειγμα | Αντιστοιχεί |
---|---|---|---|
(abc) | Ομαδοποιεί πολλαπλούς χαρακτήρες μαζί και συλλαμβάνει την αντιστοιχία | (abc)+ | "abc", "abcabc", κ.λπ. |
a|b | Αντιστοιχεί είτε σε a είτε σε b | cat|dog | "cat", "dog" |
Αφού κατανοήσετε τα βασικά, μπορείτε να δημιουργήσετε πιο σύνθετα πρότυπα για να επιλύσετε προκλήσεις επεξεργασίας κειμένου:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
Αυτό το πρότυπο επικυρώνει διευθύνσεις email διασφαλίζοντας ότι ακολουθούν τη στάνταρ μορφή: username@domain.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
Αυτό το πρότυπο επικυρώνει URLs, συμπεριλαμβανομένων αυτών με ή χωρίς το πρωτόκολλο http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
Αυτό το πρότυπο αντιστοιχεί σε αριθμούς τηλεφώνου ΗΠΑ σε διάφορες μορφές: (123) 456-7890, 123-456-7890 ή 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
Αυτό το πρότυπο επικυρώνει ημερομηνίες στη μορφή YYYY-MM-DD, με βασική επικύρωση για μήνες και ημέρες.
Οι δηλώσεις lookahead και lookbehind σας επιτρέπουν να αντιστοιχείτε σε πρότυπα μόνο εάν ακολουθούνται ή προηγούνται από άλλο πρότυπο:
a(?=b)
αντιστοιχεί σε "a" μόνο εάν ακολουθείται από "b"a(?!b)
αντιστοιχεί σε "a" μόνο εάν δεν ακολουθείται από "b"(?<=a)b
αντιστοιχεί σε "b" μόνο εάν προηγείται από "a"(?<!a)b
αντιστοιχεί σε "b" μόνο εάν δεν προηγείται από "a"Ο επικυρωτής regex μας υποστηρίζει διάφορες σημαίες που τροποποιούν τον τρόπο με τον οποίο τα πρότυπα αντιστοιχούν:
^
και $
να αντιστοιχούν στην αρχή/τέλος κάθε γραμμήςΟι κανονικές εκφράσεις έχουν πολλές πρακτικές εφαρμογές σε διάφορους τομείς:
Επικύρωση Φόρμας: Διασφαλίστε ότι οι είσοδοι χρηστών αντιστοιχούν σε απαιτούμενες μορφές:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Ανάλυση HTML: Εξάγετε συγκεκριμένα στοιχεία ή χαρακτηριστικά:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
Ανάλυση Αρχείων Καταγραφής: Εξάγετε πληροφορίες από εγγραφές καταγραφής:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
Ανάλυση CSV: Επεξεργαστείτε τιμές χωρισμένες με κόμμα με δυνητικά παραQuoted πεδία:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
Εύρεση και Αντικατάσταση: Προσδιορίστε πρότυπα για αντικατάσταση:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
Εξαγωγή Περιεχομένου: Εξάγετε συγκεκριμένες πληροφορίες από μη δομημένο κείμενο:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
Σύνταξη Χρωματισμού: Προσδιορίστε γλωσσικές κατασκευές:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
Αναδιάρθρωση Κώδικα: Βρείτε πρότυπα που χρειάζονται ενημέρωση:
\.oldMethod\(
eval\(
Ο επικυρωτής κανονικών εκφράσεων μας περιλαμβάνει ένα σύστημα διαχείρισης προτύπων που σας επιτρέπει να αποθηκεύετε και να επαναχρησιμοποιείτε τις συχνά χρησιμοποιούμενες εκφράσεις σας:
Σκεφτείτε να αποθηκεύσετε πρότυπα που:
Όταν αποθηκεύετε πρότυπα, χρησιμοποιήστε περιγραφικές ετικέτες που:
Οργανώστε τα αποθηκευμένα πρότυπά σας κατά:
Ενώ το εργαλείο μας δεν υποστηρίζει άμεσα την κοινοποίηση προτύπων μεταξύ χρηστών, μπορείτε:
Ακόμα και οι έμπειροι προγραμματιστές συναντούν προκλήσεις με κανονικές εκφράσεις. Ακολουθούν λύσεις σε κοινά προβλήματα:
Εάν το πρότυπό σας εμφανίζει σφάλμα επικύρωσης:
Εάν το regex σας είναι αργό ή προκαλεί καθυστέρηση στον περιηγητή:
(a+)+
)Εάν το πρότυπό σας αντιστοιχεί σε ανεπιθύμητο κείμενο:
^
και $
) για να αντιστοιχείτε σε ολόκληρες συμβολοσειρές\b
) όπου είναι κατάλληλοΕάν το πρότυπό σας δεν αντιστοιχεί σε αναμενόμενο κείμενο:
i
)Ενώ το regex είναι ισχυρό, δεν είναι πάντα η καλύτερη λύση για κάθε εργασία επεξεργασίας κειμένου:
Για απλές λειτουργίες κειμένου, οι εγγενείς μέθοδοι συμβολοσειρών είναι συχνά πιο καθαρές και πιο αποδοτικές:
String.indexOf()
για εύρεση υποσυμβολοσειρώνString.startsWith()
και String.endsWith()
για έλεγχο ορίων συμβολοσειρώνString.split()
για βασική τοκενικοποίησηΓια δομημένες μορφές δεδομένων, οι αφιερωμένοι αναλυτές είναι πιο αξιόπιστοι:
Για την κατανόηση της σημασίας του κειμένου αντί για απλά πρότυπα:
Σκεφτείτε εναλλακτικές λύσεις για regex όταν:
Μια κανονική έκφραση (regex) είναι μια ακολουθία χαρακτήρων που ορίζει ένα πρότυπο αναζήτησης. Αυτά τα πρότυπα μπορούν να χρησιμοποιηθούν για αναζητήσεις συμβολοσειρών, αντιστοιχίες και λειτουργίες επεξεργασίας κειμένου.
Ένας επικυρωτής προτύπων regex σας βοηθά να αναπτύξετε και να αποσφαλματώσετε κανονικές εκφράσεις παρέχοντας άμεση οπτική ανατροφοδότηση σχετικά με τις αντιστοιχίες, επικυρώνοντας τη σύνταξη του προτύπου και επιτρέποντάς σας να πειραματιστείτε με διαφορετικά πρότυπα και σημαίες χωρίς να χρειάζεται να τα εφαρμόσετε πρώτα στον κώδικα.
Για να αντιστοιχίσετε κυριολεκτικούς ειδικούς χαρακτήρες που έχουν κανονικά ειδική σημασία στο regex, πρέπει να τους διαφράξετε με μια ανάστροφη κάθετο. Για παράδειγμα, για να αντιστοιχίσετε μια κυριολεκτική τελεία, χρησιμοποιήστε \.
αντί για απλά .
.
.*
και .*?
σε ένα πρότυπο regex;Το .*
είναι ένας άπληστος ποσοτικός χαρακτήρας που αντιστοιχεί σε όσο το δυνατόν περισσότερους χαρακτήρες, ενώ το .*?
είναι ένας τεμπέλης (μη άπληστος) ποσοτικός χαρακτήρας που αντιστοιχεί σε όσο το δυνατόν λιγότερους χαρακτήρες. Αυτή η διάκριση είναι σημαντική όταν θέλετε να βρείτε τη συντομότερη αντιστοιχία αντί για τη μεγαλύτερη.
Ενώ η βασική σύνταξη regex είναι παρόμοια σε πολλές γλώσσες, υπάρχουν λεπτές διαφορές στην εφαρμογή. Ο επικυρωτής μας χρησιμοποιεί τη μηχανή regex της JavaScript, η οποία είναι συμβατή με πολλές γλώσσες ιστού αλλά μπορεί να έχει διαφορές από το regex σε γλώσσες όπως η Python, η Java ή η Perl.
Για να επικυρώσετε ότι μια ολόκληρη συμβολοσειρά αντιστοιχεί σε ένα πρότυπο, χρησιμοποιήστε την άγκυρα ^
στην αρχή και την άγκυρα $
στο τέλος του regex σας. Για παράδειγμα, ^[0-9]+$
θα ταιριάζει μόνο σε συμβολοσειρές που αποτελούνται εξ ολοκλήρου από ψηφία.
Οι ομάδες σύλληψης, που δημιουργούνται με παρενθέσεις ()
, σας επιτρέπουν να εξάγετε συγκεκριμένα τμήματα του αντιστοιχισμένου κειμένου. Στον επικυρωτή μας, μπορείτε να δείτε όλες τις αντιστοιχίες, συμπεριλαμβανομένων των συλληφθέντων ομάδων. Σε γλώσσες προγραμματισμού, μπορείτε συνήθως να έχετε πρόσβαση σε αυτές τις συλληφθείσες μέσω της ευρετηρίασης του αποτελέσματος αντιστοίχισης.
Για να βελτιώσετε την αποδοτικότητα του regex: να είστε συγκεκριμένοι με τις κατηγορίες χαρακτήρων, αποφύγετε τις περιττές ομάδες σύλληψης (χρησιμοποιήστε μη συλλαβισμένες ομάδες (?:...)
όταν είναι δυνατό), περιορίστε τη χρήση lookaheads/lookbehinds, και αποφύγετε τα καταστροφικά πρότυπα όπως οι φωλιασμένοι ποσοτικοί χαρακτήρες.
Κοινά λάθη περιλαμβάνουν: την μη διαφραγμένη ειδικών χαρακτήρων, τη δημιουργία προτύπων που είναι πολύ άπληστα, την ξεχασμένη άγκυρα προτύπων (με ^
και $
), και την υπερβολικά περίπλοκη έκφραση που είναι δύσκολη στη συντήρηση.
Οι κανονικές εκφράσεις δεν είναι κατάλληλες για την ανάλυση φωλιασμένων δομών όπως το HTML ή το XML. Ενώ μπορείτε να δημιουργήσετε πρότυπα regex για απλή αντιστοίχιση HTML, είναι γενικά καλύτερο να χρησιμοποιείτε έναν αφιερωμένο αναλυτή HTML για περίπλοκη επεξεργασία HTML.
Δοκιμάστε σήμερα τον επικυρωτή προτύπων regex μας για να απλοποιήσετε τις εργασίες επεξεργασίας κειμένου σας, να επικυρώσετε μορφές εισόδου και να εξάγετε σημαντικά δεδομένα από μη δομημένο κείμενο. Είτε είστε αρχάριος που μαθαίνει τα βασικά των κανονικών εκφράσεων είτε έμπειρος προγραμματιστής που εργάζεται σε περίπλοκες αντιστοιχίες προτύπων, το εργαλείο μας παρέχει τις δυνατότητες που χρειάζεστε για να δημιουργήσετε, να δοκιμάσετε και να βελτιώσετε τα πρότυπα regex σας αποτελεσματικά.
Ανακαλύψτε περισσότερα εργαλεία που μπορεί να είναι χρήσιμα για τη ροή εργασίας σας