Πώς να το χρησιμοποιήσετε
- Πληκτρολογήστε μια κανονική έκφραση στο πεδίο Pattern, χωρίς τις περιβάλλουσες καθέτους.
- Επιλέξτε τις σημαίες που χρειάζεστε. Η σημαία g (καθολική) βρίσκει κάθε αντιστοιχία αντί μόνο την πρώτη.
- Επικολλήστε το κείμενο για αναζήτηση. Οι αντιστοιχίες επισημαίνονται και καθεμία παρατίθεται με τον δείκτη και τις ομάδες καταγραφής της.
- Προαιρετικά εισαγάγετε μια αντικατάσταση όπως $2-$1 για προεπισκόπηση του αποτελέσματος του String.replace.
Πώς λειτουργεί
Ο ελεγκτής εκτελεί το μοτίβο σας με το ενσωματωμένο αντικείμενο RegExp του προγράμματος περιήγησης, έτσι τα αποτελέσματα είναι ακριβώς ό,τι θα παρήγαγε ο κώδικας JavaScript (ECMAScript) σε αυτό το πρόγραμμα περιήγησης. Άλλες γλώσσες χρησιμοποιούν διαφορετικές παραλλαγές regex: η PCRE (PHP), το module re της Python, η Java και το .NET υποστηρίζουν χαρακτηριστικά που δεν έχει η JavaScript, όπως possessive quantifiers (a++), atomic groups ((?>…)), inline modifiers όπως (?i) και αναδρομή, και διαφέρουν σε λεπτομέρειες όπως τα anchors \A και \Z. Δοκιμάστε το μοτίβο στη δική του γλώσσα πριν βασιστείτε σε αυτό εκεί. Το lookbehind ((?<=…)), τα named groups ((?<name>…)) και τα Unicode property escapes (\p{L} με τη σημαία u) λειτουργούν σε όλα τα σύγχρονα προγράμματα περιήγησης.
Χωρίς τη σημαία g ή y βρίσκεται μόνο η πρώτη αντιστοιχία, όπως με το RegExp.exec. Οι αντιστοιχίες μηδενικού μήκους, για παράδειγμα του ^ ή του \b, εμφανίζονται στη λίστα αλλά δεν επισημαίνονται· μετά από μία, η αναζήτηση προχωρά κατά έναν χαρακτήρα (ένα code point με τη σημαία u), όπως κάνει το String.matchAll. Οι ομάδες σύλληψης εμφανίζονται με αριθμό και, όπου ορίζεται, με όνομα· μια ομάδα που δεν συμμετείχε στην αντιστοιχία επισημαίνεται ως χωρίς τιμή, κάτι που διαφέρει από μια κενή αντιστοιχία.
Ορισμένα μοτίβα, όπως το (a+)+$ σε μια μεγάλη γραμμή χωρίς αντιστοιχία, χρειάζονται εκθετικό χρόνο για να αποτύχουν (catastrophic backtracking). Για να μειωθεί ο κίνδυνος, η αντιστοίχιση ξεκινά λίγο μετά τη διακοπή της πληκτρολόγησης, αναζητούνται μόνο οι πρώτοι 100.000 χαρακτήρες του κειμένου και συλλέγονται το πολύ 1.000 αντιστοιχίες. Ένα παθολογικό μοτίβο μπορεί ακόμα να κάνει την καρτέλα μη αποκρίσιμη για λίγο· αν συμβεί αυτό, απλοποιήστε το μοτίβο ή συντομεύστε το κείμενο.
Παραδείγματα
Εξαγωγή ημερομηνιών
Το pattern (\d{4})-(\d{2})-(\d{2}) με τη σημαία g στο “Due 2026-03-15, paid 2026-04-02” βρίσκει δύο αντιστοιχίες. Η ομάδα 1 είναι το έτος. Η αντικατάσταση $3.$2.$1 μετατρέπει το κείμενο σε “Due 15.03.2026, paid 02.04.2026”.
Ονομασμένες ομάδες για αναγνώσιμο κώδικα
Το (?<key>\w+)=(?<value>[^&]*) στο query string a=1&b=two εμφανίζει τα key και value για κάθε ζεύγος, το οποίο αντιστοιχεί σε αυτό που επιστρέφουν τα match.groups.key και match.groups.value στη JavaScript.
Αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων σε πολλές γραμμές
Το ^error:.* με τις σημαίες g, i και m αντιστοιχεί σε κάθε γραμμή ενός log που ξεκινά με Error:, ERROR: ή error:, επειδή το m κάνει το ^ να αντιστοιχεί στην αρχή κάθε γραμμής.
Συχνές ερωτήσεις
Θα λειτουργήσει το regex μου το ίδιο σε Python, PHP ή Java;
Όχι απαραίτητα. Αυτό το εργαλείο χρησιμοποιεί τη μηχανή JavaScript. Η βασική σύνταξη είναι κοινή, αλλά χαρακτηριστικά όπως οι κτητικοί ποσοτικοποιητές, οι ατομικές ομάδες, οι ενσωματωμένες σημαίες όπως (?i) και ορισμένες ακολουθίες διαφυγής υπάρχουν μόνο σε άλλες διαλέκτους, και μερικά συμπεριφέρονται διαφορετικά. Πάντα να δοκιμάζετε στη γλώσσα-στόχο.
Γιατί βρέθηκε μόνο μία αντιστοιχία;
Η σημαία g (καθολική) είναι απενεργοποιημένη. Χωρίς αυτήν, η JavaScript επιστρέφει μόνο την πρώτη αντιστοιχία. Επιλέξτε g για να βρείτε όλες.
Πρέπει να πληκτρολογήσω τις καθέτους γύρω από το μοτίβο;
Όχι. Εισαγάγετε μόνο το μοτίβο, για παράδειγμα \d+ αντί για /\d+/g, και επιλέξτε σημαίες με τα πλαίσια ελέγχου. Η μορφή JavaScript literal εμφανίζεται κάτω από τα αποτελέσματα για αντιγραφή στον κώδικα.
Γιατί η σελίδα έγινε αργή με το μοτίβο μου;
Οι ένθετοι ποσοτικοποιητές όπως (a+)+ ή (.*)* μπορούν να αναγκάσουν τη μηχανή να δοκιμάσει εκθετικό αριθμό μονοπατιών όταν δεν υπάρχει αντιστοιχία. Κάντε το μοτίβο πιο συγκεκριμένο, για παράδειγμα αντικαθιστώντας το .* με [^,]*, ή χρησιμοποιήστε άγκυρες. Το εργαλείο περιορίζει το κείμενο σε 100,000 χαρακτήρες για να μειώσει τον αντίκτυπο.
Απόρρητο
Το μοτίβο και το κείμενό σας επεξεργάζονται μόνο στο πρόγραμμα περιήγησής σας από τη μηχανή JavaScript του. Τίποτα δεν μεταφορτώνεται, δεν αποθηκεύεται και δεν περιλαμβάνεται σε αναλυτικά στοιχεία.