Όλα τα εργαλεία

Ελεγκτής 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 κάνει τα ^ $ να ταιριάζουν με τα όρια γραμμής όχι ολόκληρη τη συμβολοσειρά.