Ελεγκτής regex
Οι τυπικές εκφράσεις ταιριάζουν με το κείμενο για επικύρωση, αναζήτηση-αντικατάσταση και ανάλυση αρχείων καταγραφής. Δοκιμή μοτίβων με ζωντανή επισήμανση πριν από την εισαγωγή στον κώδικα παραγωγής — αποφύγετε καταστροφικές εκπλήξεις αναδρομής στην είσοδο του χρήστη.
Μοτίβο
Σημαίες (flags)
Κείμενο δοκιμής
Έξοδος
[0] Hello
[6] world
[12] 123
Πώς να δοκιμάσετε ένα regex
1. Εισαγάγετε το μοτίβο regex (χωρίς εξωτερικές κάθετες ή με σημαίες).
2. Ορίστε σημαίες: g καθολικά, i πεζά και πεζά, m πολλαπλών γραμμών.
3. Επικολλήστε δείγμα κειμένου στην περιοχή δοκιμαστικής συμβολοσειράς.
4. Ελέγξτε τις αντιστοιχίσεις, καταγράψτε ομάδες και αντικαταστήστε την προεπισκόπηση εάν είναι διαθέσιμη.
Παραδείγματα Regex
Επικύρωση μέσω email
^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w+$ συλλαμβάνει απλά μηνύματα ηλεκτρονικού ταχυδρομείου — όχι RFC-τέλειο, αλλά χρήσιμο για φόρμες.
Εξαγωγή ημερομηνιών ISO
\\\\d{4}-\\\\d{2}-\\\\d{2} βρίσκει το 2024-03-15 στις γραμμές καταγραφής για αντικατάσταση grep.
Slugify βοηθός
Αντικαταστήστε το [^a-z0-9]+ με παύλα για slug URL από τη συμβολοσειρά τίτλου.
Πότε να χρησιμοποιήσετε αυτό το εργαλείο
• Κατά την επικύρωση δομημένων συμβολοσειρών (τηλέφωνο, ταχυδρομικός κώδικας).
• Κατά την ανάλυση ημιδομημένου αρχείου καταγραφής.
• Όταν μαθαίνετε, καταγράψτε ομάδες και κοιτάξτε μπροστά.
Πότε να επιλέξετε κάτι άλλο
• Κατά την ανάλυση HTML ή JSON — χρησιμοποιήστε κατάλληλους αναλυτές.
• Όταν το regex γίνεται μη αναγνώσιμο — χωρίστε σε λογική κώδικα.
• Όταν το ReDoS κινδυνεύει σε μοτίβα που παρέχονται από τον χρήστη σε server — χρονικό όριο και περιορισμός διάρκειας.
Αναγνωσιμότητα ReDoS
Ένθετοι ποσοτικοί δείκτες όπως (a+)+ στο κακό string κολλούν CPU — αποφύγετε το regex χρήστη σε server ή χρησιμοποιήστε ασφαλείς μηχανές με χρονικά όρια.
Επικύρωση έναντι αποσπάσματος
Το αγκυρωμένο μοτίβο ^...$ επικυρώνει ολόκληρη τη συμβολοσειρά. unanchered βρίσκει υποσυμβολοσειρά οπουδήποτε.
Αντικατάσταση στους συντάκτες
Ο κώδικας VS χρησιμοποιεί παρόμοιο regex JS στο find-replace — δοκιμάστε εδώ και μετά επικολλήστε το μοτίβο.
Συχνές ερωτήσεις
Ποια γεύση regex;
JavaScript RegExp — Υπάρχουν διαφορές PCRE (η υποστήριξη διαφέρει ανάλογα με την έκδοση του κινητήρα).
Παγκόσμια σημαία g;
Βρίσκει όλες τις αντιστοιχίσεις όχι μόνο πρώτη — testStateful με το JSI τελευταία.
Αποφυγή ειδικών χαρακτήρων;
. * + ? [ ] ( ) { } | \\\\ ^ $ χρειάζεται διαφυγή για κυριολεκτική αντιστοίχιση.
Λήψη ομάδων;
Οι παρενθέσεις ( ) δημιουργούν αριθμημένες ομάδες προσβάσιμες σε αντικατάσταση του $1 $2.
Τοπικό;
Ναι.
Πολυγραμμικό ^ $?
Η σημαία m κάνει τα ^ $ να ταιριάζουν με τα όρια γραμμής όχι ολόκληρη τη συμβολοσειρά.