Regex Δοκιμαστής
Δοκιμάστε και διορθώστε κανονικές εκφράσεις αμέσως στο πρόγραμμα περιήγησής σας. Επισημάνετε αντιστοιχίσεις, προβάλετε ομάδες λήψης και χρησιμοποιήστε τη λειτουργία αντικατάστασης — δωρεάν και ιδιωτική.
Δοκιμάστε και διορθώστε κανονικές εκφράσεις αμέσως στο πρόγραμμα περιήγησής σας. Επισημάνετε αντιστοιχίσεις, προβάλετε ομάδες λήψης και χρησιμοποιήστε τη λειτουργία αντικατάστασης — δωρεάν και ιδιωτική.
Οι τυπικές εκφράσεις είναι μια γλώσσα συγκεκριμένης περιοχής για την αντιστοίχιση μοτίβων στο κείμενο. Αποτελούν μέρος της πληροφορικής από το 1968 και είναι πλέον ενσωματωμένα σε κάθε σύγχρονη γλώσσα προγραμματισμού, πρόγραμμα επεξεργασίας κειμένου και εργαλείο αναζήτησης γραμμής εντολών. Η σύνταξη είναι συνοπτική αλλά επιρρεπής σε σφάλματα: οι μικρές αλλαγές προκαλούν διακριτικά διαφορετική συμπεριφορά αντιστοίχισης και οι σύνθετες εκφράσεις γίνονται γρήγορα δυσανάγνωστες. Ένας ελεγκτής που εμφανίζει αντιστοιχίσεις σε πραγματικό χρόνο καθώς επεξεργάζεστε το μοτίβο είναι ο πιο αποτελεσματικός τρόπος ανάπτυξης και επαλήθευσης regex.
Αυτός ο ελεγκτής εκτελείται στο πρόγραμμα περιήγησής σας χρησιμοποιώντας τη μηχανή regex JavaScript (την ίδια που χρησιμοποιεί η εφαρμογή σας εάν εκτελείται σε πρόγραμμα περιήγησης). Τα μοτίβα και το κείμενο δοκιμής ενημερώνονται αντιδραστικά: κάθε αλλαγή σε οποιοδήποτε από τα δύο επαναλαμβάνει την αντιστοίχιση. Οι ομάδες αντιστοίχισης επισημαίνονται, οι ομάδες που έχουν καταγραφεί παρατίθενται και οι σημαίες (χωρίς διάκριση πεζών-κεφαλαίων, πολλές γραμμές, καθολικές) εκτίθενται για δοκιμή.
Η σύνταξη Regex διαφέρει διακριτικά μεταξύ των κινητήρων. Η JavaScript ακολουθεί την προδιαγραφή ECMAScript. Η Python, η PCRE (χρησιμοποιείται από την PHP και πολλούς άλλους), η Java και το Go έχουν το καθένα τις δικές του διαλέκτους με επικαλυπτόμενα αλλά όχι πανομοιότυπα χαρακτηριστικά. Τα μοτίβα που αναπτύχθηκαν εδώ χρησιμοποιούν σύνταξη ECMAScript. Η φορητότητα μεταξύ κινητήρων απαιτεί έλεγχο της τεκμηρίωσης κάθε στόχου.
Τα σφάλματα Regex είναι πολύ δύσκολο να εντοπιστούν μετά την ανάπτυξη. Ένα μοτίβο που φαίνεται λογικό μπορεί να ταιριάζει περισσότερο ή λιγότερο από το προβλεπόμενο, να αποτύχει σε ακραίες θήκες ή να έχει καταστροφική οπισθοδρόμηση σε ορισμένες εισόδους. Η διαδραστική δοκιμή μοτίβων έναντι αντιπροσωπευτικών εισροών εντοπίζει προβλήματα πριν από τον έλεγχο και την παραγωγή κώδικα.
Τα μοτίβα επωφελούνται επίσης από την τεκμηρίωση. Η εμφάνιση ενός regex παράλληλα με την είσοδο που πρέπει να ταιριάζει και την είσοδο που δεν πρέπει να ταιριάζει καθιστά σαφή την πρόθεση. Οι μελλοντικοί συντηρητές (συμπεριλαμβανομένου του εαυτού σας σε έξι μήνες) εκτιμούν τις τεκμηριωμένες περιπτώσεις δοκιμών περισσότερο από ό,τι εκτιμούν τα έξυπνα one-liners.
Πληκτρολογήστε ένα μοτίβο, πληκτρολογήστε είσοδο δοκιμής, δείτε ζωντανά τονισμένους αγώνες.
Το regex JavaScript ακολουθεί την προδιαγραφή ECMAScript. Κύρια χαρακτηριστικά: κατηγορίες χαρακτήρων ([abc], [^abc]), ποσοτικοί δείκτες (*, +, ?, {n,m}), εναλλαγή (|), ομαδοποίηση ((...)), ομάδες καταγραφής και μη λήψης, ματιά και ματιά πίσω (σύγχρονοι κινητήρες), παραπομπές πίσω, ονομαστικές ομάδες, διαφυγές ιδιοτήτων Unicode, και το σύνολο διαφυγών ιδιοτήτων Unicode (with standard escapes).
Σημαντικές διαφορές από το PCRE και την Python: η υποστήριξη lookbehind είναι πρόσφατη στο JavaScript (2018+). Οι ονομασμένες ομάδες χρησιμοποιούν σύνταξη (?<όνομα>...). Ορισμένες διαφυγές Unicode απαιτούν τη σωστή λειτουργία της σημαία u. Τα μοτίβα που προορίζονται για διαγλωσσική χρήση θα πρέπει να ελέγχονται με βάση την τεκμηρίωση κάθε στόχου.
Απόδοση: Οι μηχανές regex που βασίζονται σε backtracking (οι περισσότεροι συμπεριλαμβανομένου του JavaScript) μπορεί να έχουν καταστροφική οπισθοδρόμηση σε ορισμένα παθολογικά μοτίβα. Οι δοκιμές που κρεμούν τον ελεγκτή είναι ένα σημάδι ότι το μοτίβο χρειάζεται απλοποίηση — συνήθως αποφεύγοντας ένθετους ποσοτικούς δείκτες και διφορούμενη εναλλαγή.