Regex Tester

Ο υπολογιστής ημερών και το εργαλείο regex σάς επιτρέπουν να γράφετε και να δοκιμάζετε κανονικές εκφράσεις σε πραγματικό χρόνο με άμεση επισήμανση ταιριασμάτων. Δείτε όλα τα ταιριάσματα, τις ομάδες σύλληψης και τους δείκτες ταιριασμάτων καθώς πληκτρολογείτε. Υποστηρίζει όλες τις σημαίες regex της JavaScript (global, case-insensitive, multiline, dotAll, unicode, sticky). Περιλαμβάνει λειτουργία αντικατάστασης για δοκιμές αναζήτησης και αντικατάστασης, καθώς και ένα πλήρες φύλλο αναφοράς regex για γρήγορη υπενθύμιση.

star 4.9
auto_awesome AI
New

Regex Tester calculator

/ /
global | case-insensitive | multiline | dotAll | unicode
info Enter a pattern to start matching
0 matches
find_replace Replace Mode

                        

No matches yet

lightbulb Tips

  • \d = digit, \w = word, \s = space
  • Use 'g' flag to find all matches
  • Escape special chars: \. \( \[ \+
  • Use (?:...) for non-capturing groups

How to Use the Regex Tester

edit

Εισαγωγή μοτίβου

Πληκτρολογήστε το μοτίβο regex στο πεδίο μοτίβου. Τα σφάλματα σύνταξης επισημαίνονται σε πραγματικό χρόνο.

text_fields

Προσθήκη κειμένου δοκιμής

Επικολλήστε ή πληκτρολογήστε το κείμενο που θέλετε να ελέγξετε. Οι αντιστοιχίες επισημαίνονται αμέσως.

tune

Εναλλαγή Σημαιών

Ενεργοποιήστε σημαίες όπως καθολική (g), αγνόηση πεζών-κεφαλαίων (i) ή πολλαπλών γραμμών (m) για να τροποποιήσετε τη συμπεριφορά αντιστοίχισης.

visibility

Προβολή Αποτελεσμάτων

Δείτε όλες τις αντιστοιχίες, τις ομάδες καταγραφής και τις θέσεις αντιστοιχίας. Χρησιμοποιήστε τη λειτουργία αντικατάστασης για να δοκιμάσετε την αναζήτηση και αντικατάσταση.

The Formula

Οι κανονικές εκφράσεις είναι μοτίβα που χρησιμοποιούνται για την αντιστοίχιση συνδυασμών χαρακτήρων σε συμβολοσειρές. Η μηχανή regex σαρώνει τη συμβολοσειρά δοκιμής από αριστερά προς τα δεξιά, προσπαθώντας να ταιριάξει το μοτίβο σε κάθε θέση. Οι σημαίες τροποποιούν τη συμπεριφορά αντιστοιχίας — το 'g' βρίσκει όλες τις αντιστοιχίες, το 'i' αγνοεί τα πεζά/κεφαλαία, το 'm' κάνει τα ^ και $ να ταιριάζουν στα όρια γραμμών.

new RegExp(pattern, flags).exec(testString)

lightbulb Variables Explained

  • pattern Το μοτίβο κανονικής έκφρασης για αντιστοίχιση
  • flags Σημαίες Regex: g (καθολική), i (αγνόηση πεζών-κεφαλαίων), m (πολλαπλών γραμμών), s (dotAll), u (unicode)
  • testString Το κείμενο εισόδου για τη δοκιμή του μοτίβου
  • exec() Επιστρέφει λεπτομέρειες αντιστοιχίας συμπεριλαμβανομένων των καταγεγραμμένων ομάδων και δεικτών

tips_and_updates Pro Tips

1

Χρησιμοποιήστε τη σημαία 'g' για να βρείτε όλα τα ταιριάσματα, όχι μόνο το πρώτο

2

Διαφύγετε ειδικούς χαρακτήρες με ανάποδη κάθετο: \. \( \) \[ \] \{ \} \+ \* \?

3

Χρησιμοποιήστε (?:...) για ομάδες χωρίς σύλληψη όταν δεν χρειάζεστε την τιμή του ταιριάσματος

4

\d = ψηφίο, \w = χαρακτήρας λέξης, \s = κενό, \b = όριο λέξης

5

Χρησιμοποιήστε .+? (οκνηρό) αντί για .+ (άπληστο) για να ταιριάξετε όσο το δυνατόν λιγότερα

6

Η σημαία 'm' κάνει τα ^ και $ να ταιριάζουν στην αρχή/τέλος κάθε γραμμής, όχι μόνο της συμβολοσειράς

7

Δοκιμάστε ακραίες περιπτώσεις: κενές συμβολοσειρές, ειδικούς χαρακτήρες και πολύ μεγάλες εισόδους

Ο δωρεάν διαδικτυακός μας ελεγκτής regex σάς επιτρέπει να δημιουργείτε, να δοκιμάζετε και να διορθώνετε κανονικές εκφράσεις με ζωντανή επισήμανση αντιστοιχιών. Δείτε αντιστοιχίες, ομάδες καταγραφής και αποτελέσματα αντικατάστασης αμέσως καθώς πληκτρολογείτε. Λειτουργεί με τη σύνταξη regex της JavaScript.

Online Ελεγκτής Regex με Ζωντανή Προεπισκόπηση

Πληκτρολογήστε το μοτίβο regex σας και δείτε τις αντιστοιχίες να επισημαίνονται σε πραγματικό χρόνο. Ο ελεγκτής regex μας υποστηρίζει όλες τις σημαίες της JavaScript συμπεριλαμβανομένων:

  • καθολική
  • αγνόηση πεζών-κεφαλαίων
  • πολλαπλών γραμμών
  • dotAll

Κάθε αντιστοιχία επισημαίνεται με ομάδες καταγραφής που εμφανίζονται ξεχωριστά για εύκολο debugging.

Εργαλείο Δημιουργίας & Εντοπισμού Σφαλμάτων Regex

Δημιουργήστε σύνθετα μοτίβα regex με το διαδραຄτικό εργαλείο μας. Δείτε ακριβώς τι ταιριάζει το μοτίβο σας και γιατί.

Οι ομάδες καταγραφής αριθμούνται και εμφανίζονται, καθιστώντας εύκολη τη δημιουργία μοτίβων για:

  • εξαγωγή δεδομένων
  • επικύρωση
  • επεξεργασία κειμένου

Συνοπτικός Οδηγός & Αναφορά Regex

Γρήγορη αναφορά για τη συνήθη σύνταξη regex:

  • κλάσεις χαρακτήρων (\d, \w, \s)
  • ποσοδείκτες (+, *, ?, {n})
  • άγκυρες (^, $, \b)
  • ομάδες και εναλλαγή
  • lookahead και lookbehind

Όλα όσα χρειάζεστε για να δημιουργήσετε μοτίβα regex ακριβώς δίπλα στο εργαλείο δοκιμής.

Τι είναι μια Κανονική Έκφραση και πώς λειτουργεί;

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

Σύμφωνα με τα MDN Web Docs, οι κανονικές εκφράσεις της JavaScript είναι αντικείμενα που δημιουργούνται είτε με κυριολεκτική μορφή (/pattern/flags) είτε με τον κατασκευαστή RegExp. Η τυπική σύνταξη και η σημασιολογία αντιστοίχισης ορίζονται στην προδιαγραφή της γλώσσας ECMAScript που διατηρείται από το TC39, ενώ η ευρύτερη θεωρία ανάγεται στις κανονικές γλώσσες στη θεωρία τυπικών γλωσσών.

Οι περισσότερες σύγχρονες μηχανές, συμπεριλαμβανομένων εκείνων στο Chrome (V8), στο Node.js και στο .NET, υλοποιούν μηχανές αντιστοίχισης με αναδρομή (backtracking) που υποστηρίζουν λειτουργίες όπως αυτοαναφορές και lookaround πέρα από τα καθαρά πεπερασμένα αυτόματα.

Πώς να χρησιμοποιείτε κλάσεις χαρακτήρων και ποσοδείκτες στη Regex

Οι κλάσεις χαρακτήρων και οι ποσοδείκτες αποτελούν τα βασικά δομικά στοιχεία κάθε μοτίβου regex. Μια κλάση χαρακτήρων όπως [a-z] αντιστοιχεί σε οποιονδήποτε μεμονωμένο χαρακτήρα στο σύνολο, ενώ οι συντομογραφικές κλάσεις όπως \d (ψηφίο), \w (χαρακτήρας λέξης) και \s (διάστημα) ορίζονται στην προδιαγραφή ECMAScript και τεκμηριώνονται στα MDN Web Docs.

Οι ποσοδείκτες ελέγχουν την επανάληψη:

  • το * σημαίνει μηδέν ή περισσότερες
  • το + σημαίνει μία ή περισσότερες
  • το ? σημαίνει μηδέν ή μία
  • το {n,m} αντιστοιχεί μεταξύ n και m φορές

Συνδυάστε τα για να δημιουργήσετε ακριβή μοτίβα, για παράδειγμα \d{3}-\d{4} για ένα τμήμα τηλεφώνου. Οι αρνητικές κλάσεις όπως [^0-9] αντιστοιχούν σε οτιδήποτε εκτός από τους αναγραφόμενους χαρακτήρες, δίνοντάς σας λεπτομερή έλεγχο πάνω στο ακριβές κείμενο που αποδέχεται το μοτίβο σας.

Τι είναι οι άγκυρες, τα όρια και το Lookaround στη Regex;

Οι άγκυρες και τα όρια αντιστοιχούν σε θέσεις και όχι σε χαρακτήρες, επιτρέποντάς σας να δηλώσετε πού πρέπει να συμβεί μια αντιστοίχιση χωρίς να καταναλώνεται κείμενο. Το σύμβολο caret ^ αγκurώνεται στην αρχή της συμβολοσειράς (ή της γραμμής με τη σημαία πολλαπλών γραμμών), το $ αγκurώνεται στο τέλος και το \b σηματοδοτεί ένα όριο λέξης μεταξύ ενός χαρακτήρα λέξης και ενός χαρακτήρα εκτός λέξης, όπως τεκμηριώνεται από τα MDN Web Docs και την προδιαγραφή ECMAScript.

Οι δηλώσεις lookaround επεκτείνουν αυτή την ιδέα: το lookahead (?=...) και το αρνητικό lookahead (?!...) ελέγχουν τι ακολουθεί, ενώ το lookbehind (?<=...) και (?

Αυτές οι δηλώσεις μηδενικού εύρους είναι απαραίτητες για κανόνες κωδικών πρόσβασης, επικύρωση και αντιστοίχιση tokens μόνο σε συγκεκριμένα πλαίσια.

Πώς να χρησιμοποιείτε επώνυμες ομάδες καταγραφής και αυτοαναφορές

Οι επώνυμες ομάδες καταγραφής σάς επιτρέπουν να επισημάνετε μια καταγεγραμμένη υποσυμβολοσειρά για πιο σαφή, ευκολότερα συντηρήσιμα μοτίβα. Εισήχθησαν στη JavaScript στο ECMAScript 2018 και τεκμηριώνονται στα MDN Web Docs, με τη σύνταξη (?\d{4}) να εκχωρεί το όνομα 'year' σε μια ομάδα, η οποία είναι προσβάσιμη μέσω του match.groups.year.

Οι αυτοαναφορές επαναχρησιμοποιούν μια τιμή που είχε καταγραφεί προηγουμένως αργότερα στο ίδιο μοτίβο: το \1 αναφέρεται στην πρώτη αριθμημένη ομάδα και το \k αναφέρεται σε μια επώνυμη ομάδα. Για παράδειγμα, το (?['\"]).*?\k αντιστοιχεί σε μια συμβολοσειρά εντός εισαγωγικών που κλείνει με τον ίδιο χαρακτήρα εισαγωγικών με τον οποίο άνοιξε.

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

Πώς να δοκιμάσετε και να εντοπίσετε σφάλματα σε Regex για επικύρωση email και URL

Η Regex χρησιμοποιείται ευρέως για την επικύρωση και την εξαγωγή email και URL, αν και η πλήρης συμμόρφωση με τα πρότυπα RFC είναι παραπλανητικά δύσκολη. Η μορφή email ορίζεται στο RFC 5322 και η γραμματική διευθυνσιοδότησής της είναι τόσο σύνθετη που καμία σύντομη regex δεν την αποτυπώνει τέλεια· τα MDN Web Docs και η προδιαγραφή WHATWG HTML συνιστούν ένα πραγματιστικό μοτίβο για το πεδίο input type=email αντί για έναν αυστηρό αναλυτή RFC 5322.

Τα URL ακολουθούν τη γενική σύνταξη στο RFC 3986. Για τις περισσότερες εφαρμογές, ένα χαλαρό μοτίβο που εντοπίζει προφανή σφάλματα συν πραγματική επαλήθευση παράδοσης ή αίτησης είναι πιο ανθεκτικό από μια εξαντλητική έκφραση.

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

Είναι η Regex ασφαλής; Κατανόηση των ReDoS και κινδύνων ασφαλείας

Η Regex είναι ασφαλής για αντιστοίχιση, αλλά μπορεί να δημιουργήσει κίνδυνο άρνησης υπηρεσίας (DoS) εάν τα μοτίβα γραφτούν απρόσεκτα. Η Άρνηση Υπηρεσίας Κανονικών Εκφράσεων (ReDoS), όπως τεκμηριώνεται από το OWASP, συμβαίνει όταν μια μηχανή αναδρομής πλήττεται από καταστροφική αναδρομή σε προσαρμοσμένη είσοδο, προκαλώντας εκθετικό χρόνο και πάγωμα της διαδικασίας. Ο κλασικός πυροδοτικός παράγοντας είναι οι ένθετες ή επικαλυπτόμενες ποσοδείκτες σε αμφίσημα μοτίβα, όπως το (a+)+$ σε μια μεγάλη συμβολοσειρά 'a' που ακολουθείται από έναν μη ταιριαστό χαρακτήρα.

Το OWASP συνιστά:

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

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

Πώς διαφέρουν οι σημαίες (flags) της Regex μεταξύ JavaScript, Python και PCRE;

Οι σημαίες της Regex μοιράζονται έννοιες σε διάφορες γλώσσες, αλλά διαφέρουν ως προς τη σύνταξη και τα διαθέσιμα χαρακτηριστικά. Στην JavaScript, οι σημαίες προσαρτώνται στο κυριολεκτικό (/pattern/gi) ή περνούν ως το δεύτερο ορίσματος του κατασκευαστή RegExp, με τα g, i, m, s, u και y να ορίζονται στην προδιαγραφή ECMAScript και να εξηγούνται στα MDN Web Docs.

Η ενότητα re της Python χρησιμοποιεί ενσωματωμένες σημαίες όπως re.IGNORECASE ή προθέματα (?i) και στερείται της σημαίας sticky. Τα PCRE και οι συμβατές με Perl μηχανές που χρησιμοποιούνται από την PHP και πολλά εργαλεία υποστηρίζουν παρόμοιους τροποποιητές συν προηγμένα χαρακτηριστικά.

Αυτό το εργαλείο δοκιμής χρησιμοποιεί τη μηχανή JavaScript, οπότε τα μοτίβα συμπεριφέρονται ακριβώς όπως θα συμπεριφερθούν σε προγράμματα περιήγησης και στο Node.js. Κατά τη μεταφορά ενός μοτίβου σε άλλη γλώσσα, επαναλάβετε την επαλήθευση της συμπεριφοράς των ποσοδεικτών, του χειρισμού Unicode και της υποστήριξης lookbehind, καθώς αυτά διαφέρουν μεταξύ των υλοποιήσεων.

Συνήθη σφάλματα στη Regex και πώς να τα αποφύγετε

Τα πιο συνήθη σφάλματα regex αφορούν μη διαφυγμένους ειδικούς χαρακτήρες, απληστους ποσοδείκτες και ξεχασμένες σημαίες. Μεταχαρακτήρες όπως οι . ( ) [ ] { } + * ? ^ $ | \ φέρουν ειδική σημασία και πρέπει να διαφεύγονται με μια ανάποδη κάθετο για να ταιριάζουν κυριολεκτικά, σύμφωνα με την προδιαγραφή ECMAScript και τα MDN Web Docs· μια σκέτη . αντιστοιχεί σε οποιονδήποτε χαρακτήρα, όχι σε τελεία.

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

Άλλα σφάλματα περιλαμβάνουν την αγνόηση του Unicode με τη σημαία u και την υπόθεση ότι το lookbehind λειτουργεί παντού. Δοκιμάστε οριακές περιπτώσεις όπως κενές συμβολοσειρές, αλλαγές γραμμής και αντίθετη είσοδο σε αυτό το εργαλείο προτού βασιστείτε σε οποιοδήποτε μοτίβο.

Frequently Asked Questions

sell

Tags