Δωρεάν μετατροπέας

Regex Δοκιμαστής

Δοκιμάστε και διορθώστε κανονικές εκφράσεις αμέσως στο πρόγραμμα περιήγησής σας. Επισημάνετε αντιστοιχίσεις, προβάλετε ομάδες λήψης και χρησιμοποιήστε τη λειτουργία αντικατάστασης — δωρεάν και ιδιωτική.

//g
Σημαίες:

Σχετικά με αυτό το εργαλείο

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

Αυτός ο ελεγκτής εκτελείται στο πρόγραμμα περιήγησής σας χρησιμοποιώντας τη μηχανή regex JavaScript (την ίδια που χρησιμοποιεί η εφαρμογή σας εάν εκτελείται σε πρόγραμμα περιήγησης). Τα μοτίβα και το κείμενο δοκιμής ενημερώνονται αντιδραστικά: κάθε αλλαγή σε οποιοδήποτε από τα δύο επαναλαμβάνει την αντιστοίχιση. Οι ομάδες αντιστοίχισης επισημαίνονται, οι ομάδες που έχουν καταγραφεί παρατίθενται και οι σημαίες (χωρίς διάκριση πεζών-κεφαλαίων, πολλές γραμμές, καθολικές) εκτίθενται για δοκιμή.

Η σύνταξη Regex διαφέρει διακριτικά μεταξύ των κινητήρων. Η JavaScript ακολουθεί την προδιαγραφή ECMAScript. Η Python, η PCRE (χρησιμοποιείται από την PHP και πολλούς άλλους), η Java και το Go έχουν το καθένα τις δικές του διαλέκτους με επικαλυπτόμενα αλλά όχι πανομοιότυπα χαρακτηριστικά. Τα μοτίβα που αναπτύχθηκαν εδώ χρησιμοποιούν σύνταξη ECMAScript. Η φορητότητα μεταξύ κινητήρων απαιτεί έλεγχο της τεκμηρίωσης κάθε στόχου.

Γιατί να χρησιμοποιήσετε έναν ελεγκτή Regex

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

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

Πώς να το χρησιμοποιήσετε

Πληκτρολογήστε ένα μοτίβο, πληκτρολογήστε είσοδο δοκιμής, δείτε ζωντανά τονισμένους αγώνες.

  1. Εισαγάγετε το μοτίβο σας: Πληκτρολογήστε το regex μοτίβο στο πεδίο μοτίβο. Τόσο το κυριολεκτικό regex (/pattern/flags) όσο και οι φόρμες μόνο με μοτίβο λειτουργούν. Οι σημαίες μπορούν να οριστούν μέσω της εισαγωγής σημαιών.
  2. Προσθήκη εισόδου δοκιμής: Επικολλήστε δείγμα κειμένου που πρέπει να ταιριάζει το μοτίβο (και ιδανικά επίσης κείμενο που δεν πρέπει να ταιριάζει). Ο ελεγκτής εκτελεί το μοτίβο σε σχέση με την είσοδο και επισημαίνει τις αντιστοιχίσεις.
  3. Ορίστε σημαίες: Κοινές σημαίες: g (καθολική, εύρεση όλων των αντιστοιχίσεων), i (χωρίς διάκριση πεζών-κεφαλαίων), m (πολλαπλή γραμμή, ^ και $ έναρξη/λήξη γραμμής αντιστοίχισης), s (doll, . αντιστοιχεί σε νέες γραμμές), u (Unicode).
  4. Επιθεωρήστε τα αποτελέσματα: Κάθε αντιστοιχία επισημαίνεται στην εισαγωγή. Οι ομάδες λήψης εμφανίζονται σε μια λίστα με ευρετήριο και τιμή ομάδας. Ο ελεγκτής εμφανίζει επίσης τον αριθμό των αντιστοιχιών και τυχόν σφάλματα μεταγλώττισης στο μοτίβο.

Κοινές περιπτώσεις χρήσης

Τεχνικές λεπτομέρειες

Το regex JavaScript ακολουθεί την προδιαγραφή ECMAScript. Κύρια χαρακτηριστικά: κατηγορίες χαρακτήρων ([abc], [^abc]), ποσοτικοί δείκτες (*, +, ?, {n,m}), εναλλαγή (|), ομαδοποίηση ((...)), ομάδες καταγραφής και μη λήψης, ματιά και ματιά πίσω (σύγχρονοι κινητήρες), παραπομπές πίσω, ονομαστικές ομάδες, διαφυγές ιδιοτήτων Unicode, και το σύνολο διαφυγών ιδιοτήτων Unicode (with standard escapes).

Σημαντικές διαφορές από το PCRE και την Python: η υποστήριξη lookbehind είναι πρόσφατη στο JavaScript (2018+). Οι ονομασμένες ομάδες χρησιμοποιούν σύνταξη (?<όνομα>...). Ορισμένες διαφυγές Unicode απαιτούν τη σωστή λειτουργία της σημαία u. Τα μοτίβα που προορίζονται για διαγλωσσική χρήση θα πρέπει να ελέγχονται με βάση την τεκμηρίωση κάθε στόχου.

Απόδοση: Οι μηχανές regex που βασίζονται σε backtracking (οι περισσότεροι συμπεριλαμβανομένου του JavaScript) μπορεί να έχουν καταστροφική οπισθοδρόμηση σε ορισμένα παθολογικά μοτίβα. Οι δοκιμές που κρεμούν τον ελεγκτή είναι ένα σημάδι ότι το μοτίβο χρειάζεται απλοποίηση — συνήθως αποφεύγοντας ένθετους ποσοτικούς δείκτες και διφορούμενη εναλλαγή.

Βέλτιστες Πρακτικές

Συχνές ερωτήσεις

Ποια γεύση regex υποστηρίζει αυτό το εργαλείο;
Χρησιμοποιεί την ενσωματωμένη μηχανή RegExp της JavaScript, η οποία υποστηρίζει τυπική σύνταξη, συμπεριλαμβανομένων των προβολών, του lookbehind (στα σύγχρονα προγράμματα περιήγησης), των ομάδων λήψης με όνομα και των διαφυγών ιδιοτήτων Unicode.
Μπορώ να δοκιμάσω αντικαταστάσεις regex;
Ναι. Μεταβείτε στη λειτουργία αντικατάστασης για να εισαγάγετε ένα μοτίβο αντικατάστασης. Μπορείτε να χρησιμοποιήσετε $1, $2, κ.λπ. για τη λήψη αναφορών ομάδας και $<name> για ομάδες με όνομα.
Γιατί το regex μου ταιριάζει διαφορετικά εδώ από ό,τι σε Python/PHP;
Οι διαφορετικές γλώσσες προγραμματισμού έχουν ελαφρώς διαφορετικές μηχανές regex. Η JavaScript δεν υποστηρίζει κτητικούς ποσοτικούς δείκτες ή ορισμένες λειτουργίες που σχετίζονται με το PCRE. Η βασική σύνταξη (τάξεις χαρακτήρων, ποσοτικοί δείκτες, ομάδες) είναι η ίδια σε όλες τις γλώσσες.
Το εργαλείο αποθηκεύει τα μοτίβα regex μου;
Όχι. Τίποτα δεν αποθηκεύεται ή μεταδίδεται. Το εργαλείο εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας. Μπορείτε να προσθέσετε σελιδοδείκτες ή να μοιραστείτε μοτίβα αντιγράφοντας τη συμβολοσειρά regex.
Πώς αντιστοιχίζω έναν κυριολεκτικό ειδικό χαρακτήρα;
Αποδράστε με μια ανάστροφη κάθετο. Για να αντιστοιχίσετε μια κυριολεκτική τελεία: \. Για να αντιστοιχίσετε μια κυριολεκτική ανάστροφη κάθετο: \\. Μέσα σε κατηγορίες χαρακτήρων [...], οι περισσότεροι ειδικοί χαρακτήρες χάνουν το νόημά τους.
Ο ελεγκτής εκτελείται σε διακομιστή;
Όχι. Η συλλογή μοτίβων και η αντιστοίχιση πραγματοποιούνται στο πρόγραμμα περιήγησής σας χρησιμοποιώντας το εγγενές αντικείμενο RegExp.
Μπορώ να δοκιμάσω μοτίβα για μηχανές που δεν είναι JavaScript;
Κυρίως. Για απλά μοτίβα συμφωνούν οι κύριοι κινητήρες. Για προηγμένες λειτουργίες (κοιτάζοντας πίσω, ατομικές ομάδες, κτητικοί ποσοτικοί δείκτες, διαφυγές ιδιοτήτων Unicode), επιβεβαιώστε την τεκμηρίωση του κινητήρα-στόχου.
Διαχειρίζεται πολύ μεγάλες εισροές;
Έως και μερικά megabyte λειτουργεί ομαλά. Οι μεγαλύτερες είσοδοι ενδέχεται να επιβραδύνουν ή να κολλήσουν το πρόγραμμα περιήγησης, ειδικά με μοτίβα επιρρεπή σε οπισθοδρόμηση.