Παραδείγματα Excel RegEx: χρήση κανονικών εκφράσεων σε τύπους

  • Μοιραστείτε Αυτό
Michael Brown

Πίνακας περιεχομένων

Δεν μπορείτε ποτέ να καταλάβετε γιατί οι κανονικές εκφράσεις δεν υποστηρίζονται στους τύπους του Excel; Τώρα, υποστηρίζονται :) Με τις προσαρμοσμένες συναρτήσεις μας, μπορείτε εύκολα να βρείτε, να αντικαταστήσετε, να εξαγάγετε και να αφαιρέσετε συμβολοσειρές που ταιριάζουν σε ένα συγκεκριμένο μοτίβο.

Εκ πρώτης όψεως, το Excel διαθέτει όλα όσα θα μπορούσατε ποτέ να χρειαστείτε για χειρισμούς συμβολοσειρών κειμένου. Χμμ... τι γίνεται με τις κανονικές εκφράσεις; Ουπς, δεν υπάρχουν ενσωματωμένες συναρτήσεις Regex στο Excel. Αλλά κανείς δεν λέει ότι δεν μπορούμε να δημιουργήσουμε τις δικές μας :)

    Τι είναι η κανονική έκφραση;

    Μια κανονική έκφραση (ή αλλιώς regex ή regexp ) είναι μια ειδικά κωδικοποιημένη ακολουθία χαρακτήρων που ορίζει ένα μοτίβο αναζήτησης. Χρησιμοποιώντας αυτό το μοτίβο, μπορείτε να βρείτε έναν ταιριαστό συνδυασμό χαρακτήρων σε μια συμβολοσειρά ή να επικυρώσετε την εισαγωγή δεδομένων. Αν είστε εξοικειωμένοι με τη σημειογραφία μπαλαντέρ, μπορείτε να θεωρήσετε τις regex ως μια προηγμένη έκδοση των μπαλαντέρ.

    Οι κανονικές εκφράσεις έχουν τη δική τους σύνταξη που αποτελείται από ειδικούς χαρακτήρες, τελεστές και δομές. Για παράδειγμα, το [0-5] ταιριάζει με οποιοδήποτε ψηφίο από το 0 έως το 5.

    Οι κανονικές εκφράσεις χρησιμοποιούνται σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένης της JavaScript και της VBA. Η τελευταία διαθέτει ένα ειδικό αντικείμενο RegExp, το οποίο θα χρησιμοποιήσουμε για να δημιουργήσουμε τις προσαρμοσμένες συναρτήσεις μας.

    Υποστηρίζει το Excel regex;

    Δυστυχώς, δεν υπάρχουν ενσωματωμένες συναρτήσεις Regex στο Excel. Για να μπορείτε να χρησιμοποιείτε κανονικές εκφράσεις στους τύπους σας, θα πρέπει να δημιουργήσετε τη δική σας συνάρτηση που ορίζεται από το χρήστη (βασισμένη σε VBA ή .NET) ή να εγκαταστήσετε εργαλεία τρίτων που υποστηρίζουν τις regexes.

    Excel Regex cheat sheet

    Είτε ένα μοτίβο regex είναι πολύ απλό είτε εξαιρετικά περίπλοκο, κατασκευάζεται χρησιμοποιώντας την κοινή σύνταξη. Αυτό το σεμινάριο δεν έχει ως στόχο να σας διδάξει τις κανονικές εκφράσεις. Γι' αυτό, υπάρχουν πολλές πηγές στο διαδίκτυο, από δωρεάν σεμινάρια για αρχάριους μέχρι μαθήματα υψηλής ποιότητας για προχωρημένους χρήστες.

    Παρακάτω σας παρέχουμε μια γρήγορη αναφορά στα κύρια πρότυπα RegEx που θα σας βοηθήσουν να κατανοήσετε τα βασικά. Μπορεί επίσης να λειτουργήσει ως το σκονάκι σας όταν μελετάτε περαιτέρω παραδείγματα.

    Αν είστε άνετοι με τις κανονικές εκφράσεις, μπορείτε να μεταβείτε κατευθείαν στις συναρτήσεις RegExp.

    Χαρακτήρες

    Αυτά είναι τα πιο συχνά χρησιμοποιούμενα μοτίβα για την αντιστοίχιση συγκεκριμένων χαρακτήρων.

    Μοτίβο Περιγραφή Παράδειγμα Αγώνες
    . Χαρακτήρας μπαλαντέρ: ταιριάζει με οποιονδήποτε μεμονωμένο χαρακτήρα εκτός από το διάλειμμα γραμμής .ot dot , hot , pot , @ot
    \d Χαρακτήρας ψηφίου: οποιοδήποτε απλό ψηφίο από το 0 έως το 9 \d Στο α1β , σπίρτα 1
    \D Οποιοσδήποτε χαρακτήρας που ΔΕΝ είναι ψηφίο \D Στο α1β , σπίρτα a και b
    \s Χαρακτήρας κενού διαστήματος: κενό, tab, νέα γραμμή και carriage return .\s. Στο 3 σεντς , σπίρτα 3 c
    \S Οποιοσδήποτε χαρακτήρας που δεν είναι κενό διάστημα \S+ Στο 30 σεντς , σπίρτα 30 και σεντς
    \w Χαρακτήρας λέξης: οποιοδήποτε γράμμα ASCII, ψηφίο ή υπογράμμιση \w+ Στο 5_cats*** , σπίρτα 5_cats
    \W Οποιοσδήποτε χαρακτήρας που ΔΕΝ είναι αλφαριθμητικός χαρακτήρας ή υπογράμμιση \W+ Στο 5_cats*** , σπίρτα ***
    \t Καρτέλα
    \n Νέα γραμμή \n\d+ Στην παρακάτω συμβολοσειρά δύο γραμμών, τα matches 10

    5 γάτες

    10 σκυλιά

    \ Αποφεύγει την ειδική σημασία ενός χαρακτήρα, ώστε να μπορείτε να τον αναζητήσετε \.

    \w+\.

    Διαφεύγει μια τελεία ώστε να μπορείτε να βρείτε τον κυριολεκτικό χαρακτήρα "." σε μια συμβολοσειρά

    Ο κ. , Η κα. , Καθ.

    Κατηγορίες χαρακτήρων

    Χρησιμοποιώντας αυτά τα μοτίβα, μπορείτε να αντιστοιχίσετε στοιχεία διαφορετικών συνόλων χαρακτήρων.

    Μοτίβο Περιγραφή Παράδειγμα Αγώνες
    [χαρακτήρες] Ταιριάζει με οποιονδήποτε μεμονωμένο χαρακτήρα στις αγκύλες d[oi]g σκύλος και dig
    [^χαρακτήρες] Ταιριάζει με οποιονδήποτε μεμονωμένο χαρακτήρα ΔΕΝ βρίσκεται στις αγκύλες d[^oi]g Αγώνες dag, dug , d1g

    Δεν ταιριάζει σκύλος και dig

    [from-to] Ταιριάζει με οποιονδήποτε χαρακτήρα στην περιοχή μεταξύ των παρενθέσεων [0-9]

    [a-z]

    [A-Z]

    Οποιοδήποτε απλό ψηφίο από το 0 έως το 9

    Οποιοδήποτε απλό πεζό γράμμα

    Οποιοδήποτε κεφαλαίο γράμμα

    Ποσοτικοί προσδιορισμοί

    Οι ποσοδείκτες είναι ειδικές εκφράσεις που καθορίζουν τον αριθμό των χαρακτήρων που πρέπει να ταιριάζουν. Ένας ποσοδείκτης εφαρμόζεται πάντα στον χαρακτήρα που προηγείται.

    Μοτίβο Περιγραφή Παράδειγμα Αγώνες
    * Μηδέν ή περισσότερα περιστατικά 1a* 1, 1a , 1aa, 1aaa , κ.λπ.
    + Ένα ή περισσότερα περιστατικά po+ Στο pot , σπίρτα po

    Στο φτωχό , σπίρτα poo

    ? Μηδέν ή μία εμφάνιση roa?d δρόμος, ράβδος
    *? Μηδέν ή περισσότερα περιστατικά, αλλά όσο το δυνατόν λιγότερα 1a*? Στο 1a , 1αα και 1ααα , σπίρτα 1a
    +? Ένα ή περισσότερα περιστατικά, αλλά όσο το δυνατόν λιγότερα po+? Στο pot και φτωχό , σπίρτα po
    ?? Μηδέν ή μία εμφάνιση, αλλά όσο το δυνατόν λιγότερες roa?? Στο δρόμος και ράβδος , σπίρτα ro
    {n} Ταιριάζει με το προηγούμενο μοτίβο n φορές \d{3} Ακριβώς 3 ψηφία
    {n,} Ταιριάζει με το προηγούμενο μοτίβο n ή περισσότερες φορές \d{3,} 3 ή περισσότερα ψηφία
    {n,m} Ταιριάζει με το προηγούμενο μοτίβο μεταξύ n και m φορές \d{3,5} Από 3 έως 5 ψηφία

    Ομαδοποίηση

    Οι δομές ομαδοποίησης χρησιμοποιούνται για τη σύλληψη μιας υποομάδας από την αρχική συμβολοσειρά, ώστε να μπορείτε να εκτελέσετε κάποια λειτουργία με αυτήν.

    Σύνταξη Περιγραφή Παράδειγμα Αγώνες
    (μοτίβο) Ομάδα σύλληψης: συλλαμβάνει μια ταιριαστή υποσειρά και της αναθέτει έναν αύξοντα αριθμό (\d+) Στο 5 γάτες και 10 σκυλιά , συλλαμβάνει 5 (ομάδα 1) και 10 (ομάδα 2)
    (?:pattern) Ομάδα που δεν συλλαμβάνεται: ταιριάζει με μια ομάδα, αλλά δεν την συλλαμβάνει. (\d+)(?: σκυλιά) Στο 5 γάτες και 10 σκυλιά , συλλαμβάνει 10
    \1 Περιεχόμενα της ομάδας 1 (\d+)\+(\d+)=\2\+\1 Ταιριάζει 5+10=10+5 και συλλαμβάνει 5 και 10 , οι οποίες είναι σε ομάδες σύλληψης
    \2 Περιεχόμενα της ομάδας 2

    Άγκυρες

    Οι άγκυρες καθορίζουν μια θέση στη συμβολοσειρά εισόδου όπου θα αναζητηθεί μια αντιστοιχία.

    Άγκυρα Περιγραφή Παράδειγμα Αγώνες
    ^ Αρχή της συμβολοσειράς

    Σημείωση: [^μέσα σε αγκύλες] σημαίνει "όχι".

    ^\d+ Οποιοσδήποτε αριθμός ψηφίων στην αρχή της συμβολοσειράς.

    Στο 5 γάτες και 10 σκυλιά , σπίρτα 5

    $ Τέλος της συμβολοσειράς \d+$ Οποιοσδήποτε αριθμός ψηφίων στο τέλος της συμβολοσειράς.

    Στο 10 συν 5 δίνει 15 , σπίρτα 15

    \b Όριο λέξης \bjoy\b Αγώνες χαρά ως ξεχωριστή λέξη, αλλά όχι στο απολαυστικό .
    \B ΔΕΝ είναι όριο λέξης \Bjoy\B Αγώνες χαρά στο απολαυστικό , αλλά όχι ως ξεχωριστή λέξη.

    Κατασκευή εναλλαγής (OR)

    Ο τελεστής εναλλαγής ενεργοποιεί τη λογική OR, ώστε να μπορείτε να αντιστοιχίσετε είτε αυτό είτε εκείνο το στοιχείο.

    Κατασκευάστε το Περιγραφή Παράδειγμα Αγώνες
    Ταιριάζει με οποιοδήποτε μεμονωμένο στοιχείο που διαχωρίζεται από την κάθετη γραμμή (s Στο πουλάει κοχύλια, αγώνες πουλάει και κοχύλια

    Look-arounds

    Οι δομές lookaround είναι χρήσιμες όταν θέλετε να ταιριάξετε κάτι που ακολουθείται ή δεν ακολουθείται ή προηγείται από κάτι άλλο. Αυτές οι εκφράσεις ονομάζονται μερικές φορές "ισχυρισμοί μηδενικού πλάτους" ή "αντιστοιχία μηδενικού πλάτους" επειδή ταιριάζουν με μια θέση και όχι με πραγματικούς χαρακτήρες.

    Σημείωση. Στη γεύση VBA RegEx, δεν υποστηρίζονται lookbehinds.

    Μοτίβο Περιγραφή Παράδειγμα Αγώνες
    (?=) Θετική προοπτική X(?=Y) Ταιριάζει με την έκφραση X όταν ακολουθείται από Y (δηλαδή αν υπάρχει Y πριν από το X)
    (?!) Αρνητική πρόβλεψη X(?!Y) Ταιριάζει με την έκφραση X εάν ΔΕΝ ακολουθείται από Y
    (?<=) Θετικό lookbehind (?<=Y)X Ταιριάζει με την έκφραση X όταν προηγείται το Y (δηλαδή αν υπάρχει το Y πίσω από το X)
    (? )</td Αρνητικό lookbehind (? Y)X</td Ταιριάζει με την έκφραση X όταν ΔΕΝ προηγείται η έκφραση Y

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

    Προσαρμοσμένες λειτουργίες RegEx για το Excel

    Όπως έχει ήδη αναφερθεί, το Microsoft Excel δεν διαθέτει ενσωματωμένες συναρτήσεις RegEx. Για να ενεργοποιήσουμε τις κανονικές εκφράσεις, δημιουργήσαμε τρεις προσαρμοσμένες συναρτήσεις VBA (ή αλλιώς συναρτήσεις που ορίζονται από το χρήστη). Μπορείτε να αντιγράψετε τους κώδικες από τις σελίδες που συνδέονται παρακάτω ή από το βιβλίο εργασίας του δείγματός μας και στη συνέχεια να τους επικολλήσετε στα δικά σας αρχεία Excel.

    Πώς λειτουργούν οι συναρτήσεις RegExp της VBA

    Αυτή η ενότητα εξηγεί τους εσωτερικούς μηχανισμούς και μπορεί να είναι ενδιαφέρουσα για όσους θέλουν να μάθουν τι ακριβώς συμβαίνει στο backend.

    Για να αρχίσετε να χρησιμοποιείτε τις κανονικές εκφράσεις στη VBA, πρέπει είτε να ενεργοποιήσετε τη βιβλιοθήκη αναφοράς αντικειμένων RegEx είτε να χρησιμοποιήσετε τη συνάρτηση CreateObject. Για να σας γλιτώσουμε από τον κόπο να ορίσετε την αναφορά στον επεξεργαστή της VBA, επιλέξαμε τη δεύτερη προσέγγιση.

    Το αντικείμενο RegExp έχει 4 ιδιότητες:

    • Μοτίβο - είναι η μοτίβο για να ταιριάξει στη συμβολοσειρά εισόδου.
    • Παγκόσμια - ελέγχει αν θα βρεθούν όλες οι αντιστοιχίες στο αλφαριθμητικό εισόδου ή μόνο η πρώτη. Στις συναρτήσεις μας, τίθεται σε True για να λάβουμε όλοι οι αγώνες .
    • MultiLine - καθορίζει αν το μοτίβο θα ταιριάζει σε όλα τα διαλείμματα γραμμών σε συμβολοσειρές πολλαπλών γραμμών ή μόνο στην πρώτη γραμμή. Στους κώδικες μας, έχει οριστεί σε True για αναζήτηση σε κάθε γραμμή .
    • IgnoreCase - καθορίζει αν μια κανονική έκφραση είναι ευαίσθητη στην πεζότητα (προεπιλογή) ή μη ευαίσθητη στην πεζότητα (που έχει οριστεί σε True). Στην περίπτωσή μας, αυτό εξαρτάται από το πώς ρυθμίζετε την προαιρετική επιλογή match_case Από προεπιλογή, όλες οι συναρτήσεις είναι case-sensitive .

    Περιορισμοί VBA RegExp

    Το Excel VBA υλοποιεί τα βασικά μοτίβα regex, αλλά δεν διαθέτει πολλά προηγμένα χαρακτηριστικά που είναι διαθέσιμα στις μηχανές .NET, Perl, Java και άλλες μηχανές regex. Για παράδειγμα, το VBA RegExp δεν υποστηρίζει τροποποιητές γραμμής όπως (?i) για αντιστοίχιση χωρίς ευαισθησία στη πεζότητα ή (?m) για λειτουργία πολλαπλών γραμμών, lookbehinds, κλάσεις POSIX, για να αναφέρουμε μερικά.

    Λειτουργία Excel Regex Match

    Το RegExpMatch Η συνάρτηση ψάχνει σε μια συμβολοσειρά εισόδου για κείμενο που ταιριάζει με μια κανονική έκφραση και επιστρέφει TRUE αν βρεθεί μια αντιστοιχία, FALSE σε αντίθετη περίπτωση.

    RegExpMatch(text, pattern, [match_case])

    Πού:

    • Κείμενο (υποχρεωτικό) - μία ή περισσότερες συμβολοσειρές για αναζήτηση.
    • Μοτίβο (απαιτείται) - η κανονική έκφραση που θα ταιριάζει.
    • Match_case (προαιρετικό) - τύπος αντιστοίχισης. TRUE ή παραλείπεται - με ευαισθησία στην πεζότητα- FALSE - χωρίς ευαισθησία στην πεζότητα

    Ο κώδικας της συνάρτησης βρίσκεται εδώ.

    Παράδειγμα: πώς να χρησιμοποιήσετε κανονικές εκφράσεις για να ταιριάξετε συμβολοσειρές

    Στο παρακάτω σύνολο δεδομένων, ας υποθέσουμε ότι θέλετε να εντοπίσετε τις καταχωρήσεις που περιέχουν κωδικούς SKU.

    Δεδομένου ότι κάθε SKU αρχίζει με 2 κεφαλαία γράμματα, ακολουθούμενα από μια παύλα, ακολουθούμενη από 4 ψηφία, μπορείτε να τα ταιριάξετε χρησιμοποιώντας την ακόλουθη έκφραση.

    Μοτίβο : \b[A-Z]{2}-\d{4}\b

    Όπου [A-Z]{2} σημαίνει 2 οποιαδήποτε κεφαλαία γράμματα από το A έως το Z και \d{4} σημαίνει 4 οποιαδήποτε ψηφία από το 0 έως το 9. Ένα όριο λέξης \b υποδηλώνει ότι μια SKU είναι ξεχωριστή λέξη και όχι μέρος μιας μεγαλύτερης συμβολοσειράς.

    Με το μοτίβο να έχει καθιερωθεί, αρχίστε να πληκτρολογείτε έναν τύπο όπως κάνετε συνήθως και το όνομα της συνάρτησης θα εμφανιστεί στη λίστα που προτείνει η Αυτόματη συμπλήρωση του Excel:

    Υποθέτοντας ότι η αρχική συμβολοσειρά βρίσκεται στο A5, ο τύπος έχει ως εξής:

    =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")

    Για ευκολία, μπορείτε να εισαγάγετε την κανονική έκφραση σε ξεχωριστό κελί και να χρησιμοποιήσετε μια απόλυτη αναφορά ($A$2) για το μοτίβο Αυτό εξασφαλίζει ότι η διεύθυνση του κελιού θα παραμείνει αμετάβλητη όταν αντιγράφετε τον τύπο σε άλλα κελιά:

    =RegExpMatch(A5, $A$2)

    Για να εμφανίσετε τις δικές σας ετικέτες κειμένου αντί για TRUE και FALSE, φωλιάστε το RegExpMatch στη συνάρτηση IF και καθορίστε τα επιθυμητά κείμενα στη συνάρτηση value_if_true και value_if_false επιχειρήματα:

    =IF(RegExpMatch(A5, $A$2), "Ναι", "Όχι")

    Για περισσότερα παραδείγματα τύπων, ανατρέξτε στην ενότητα:

    • Πώς να ταιριάζετε συμβολοσειρές χρησιμοποιώντας κανονικές εκφράσεις
    • Επικύρωση δεδομένων του Excel με regexes

    Λειτουργία εξαγωγής Regex του Excel

    Το RegExpExtract Η συνάρτηση αναζητά υποσύνολα που ταιριάζουν με μια κανονική έκφραση και εξάγει όλα τα αποτελέσματα ή ένα συγκεκριμένο αποτέλεσμα.

    RegExpExtract(text, pattern, [instance_num], [match_case])

    Πού:

    • Κείμενο (υποχρεωτικό) - η συμβολοσειρά κειμένου για αναζήτηση.
    • Μοτίβο (απαιτείται) - η κανονική έκφραση που θα ταιριάζει.
    • Instance_num (προαιρετικό) - ένας αύξων αριθμός που υποδεικνύει ποια περίπτωση θα εξαχθεί. Αν παραλειφθεί, επιστρέφει όλες τις αντιστοιχίες που βρέθηκαν (προεπιλογή).
    • Match_case (προαιρετικό) - καθορίζει εάν θα ταιριάζει (TRUE ή παραλείπεται) ή θα αγνοεί (FALSE) την πεζότητα του κειμένου.

    Μπορείτε να βρείτε τον κώδικα της συνάρτησης εδώ.

    Παράδειγμα: πώς να εξάγετε συμβολοσειρές χρησιμοποιώντας κανονικές εκφράσεις

    Συνεχίζοντας το παράδειγμά μας λίγο περισσότερο, ας εξάγουμε τους αριθμούς των τιμολογίων. Για το σκοπό αυτό, θα χρησιμοποιήσουμε μια πολύ απλή regex που ταιριάζει με οποιονδήποτε 7ψήφιο αριθμό:

    Μοτίβο : \b\d{7}\b

    Βάλτε το μοτίβο στο Α2 και θα κάνετε τη δουλειά σας με αυτή τη συμπαγή και κομψή φόρμουλα:

    =RegExpExtract(A5, $A$2)

    Εάν ένα μοτίβο ταιριάζει, ο τύπος εξάγει έναν αριθμό τιμολογίου, εάν δεν βρεθεί καμία αντιστοιχία - δεν επιστρέφεται τίποτα.

    Για περισσότερα παραδείγματα, ανατρέξτε στην ενότητα: Πώς να εξάγετε συμβολοσειρές στο Excel χρησιμοποιώντας regex.

    Λειτουργία αντικατάστασης Regex του Excel

    Το RegExpReplace αντικαθιστά τις τιμές που ταιριάζουν σε ένα regex με το κείμενο που καθορίζετε.

    RegExpReplace(text, pattern, replacement, [instance_num], [match_case])

    Πού:

    • Κείμενο (υποχρεωτικό) - η συμβολοσειρά κειμένου για αναζήτηση.
    • Μοτίβο (απαιτείται) - η κανονική έκφραση που θα ταιριάζει.
    • Αντικατάσταση (υποχρεωτικό) - το κείμενο με το οποίο θα αντικατασταθούν οι υποομάδες που ταιριάζουν.
    • Instance_num (προαιρετικό) - η περίπτωση προς αντικατάσταση. Η προεπιλογή είναι "όλα τα αποτελέσματα".
    • Match_case (προαιρετικό) - ελέγχει αν θα ταιριάζει (TRUE ή παραλείπεται) ή θα αγνοεί (FALSE) την πεζότητα του κειμένου.

    Ο κώδικας της συνάρτησης είναι διαθέσιμος εδώ.

    Παράδειγμα: πώς να αντικαταστήσετε ή να αφαιρέσετε συμβολοσειρές χρησιμοποιώντας regexes

    Ορισμένα από τα αρχεία μας περιέχουν αριθμούς πιστωτικών καρτών. Αυτές οι πληροφορίες είναι εμπιστευτικές και ίσως θελήσετε να τις αντικαταστήσετε με κάτι άλλο ή να τις διαγράψετε εντελώς. Και οι δύο εργασίες μπορούν να πραγματοποιηθούν με τη βοήθεια του RegExpReplace Σε ένα δεύτερο σενάριο, θα αντικαταστήσουμε με ένα κενό αλφαριθμητικό.

    Στον πίνακα του δείγματός μας, όλοι οι αριθμοί καρτών έχουν 16 ψηφία, τα οποία είναι γραμμένα σε 4 ομάδες που χωρίζονται με κενά. Για να τα βρούμε, επαναλαμβάνουμε το μοτίβο χρησιμοποιώντας αυτή την κανονική έκφραση:

    Μοτίβο : \b\d{4} \d{4} \d{4} \d{4} \d{4}\b

    Για την αντικατάσταση, χρησιμοποιείται η ακόλουθη συμβολοσειρά:

    Αντικατάσταση : XXXX XXXX XXXX XXXX XXXX XXXX

    Και εδώ είναι μια πλήρης φόρμουλα για να αντικαταστήστε το αριθμούς πιστωτικών καρτών με μη ευαίσθητες πληροφορίες:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX XXXX XXXX")

    Με το regex και το κείμενο αντικατάστασης σε ξεχωριστά κελιά (A2 και B2), ο τύπος λειτουργεί εξίσου καλά:

    Στο Excel, η "αφαίρεση" είναι μια ειδική περίπτωση της "αντικατάστασης". αφαιρέστε το αριθμούς πιστωτικών καρτών, απλά χρησιμοποιήστε μια κενή συμβολοσειρά ("") για το αντικατάσταση επιχείρημα:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4} \d{4}\b", "")

    Συμβουλή. Για να απαλλαγείτε από τις κενές γραμμές στα αποτελέσματα, μπορείτε να χρησιμοποιήσετε μια άλλη συνάρτηση RegExpReplace, όπως φαίνεται σε αυτό το παράδειγμα: Πώς να αφαιρέσετε κενές γραμμές χρησιμοποιώντας regex.

    Για περισσότερες πληροφορίες, δείτε:

    • Πώς να αντικαταστήσετε συμβολοσειρές στο Excel χρησιμοποιώντας regex
    • Πώς να αφαιρέσετε συμβολοσειρές χρησιμοποιώντας regex
    • Πώς να αφαιρέσετε τα λευκά κενά χρησιμοποιώντας regexes

    Εργαλεία Regex για την αντιστοίχιση, εξαγωγή, αντικατάσταση και αφαίρεση υποσύνολων

    Οι χρήστες της Ultimate Suite μπορούν να αποκτήσουν όλη τη δύναμη των κανονικών εκφράσεων χωρίς να εισάγουν ούτε μία γραμμή κώδικα στα βιβλία εργασίας τους. Όλος ο απαραίτητος κώδικας έχει γραφτεί από τους προγραμματιστές μας και ενσωματώνεται ομαλά στο Excel σας κατά την εγκατάσταση.

    Σε αντίθεση με τις συναρτήσεις VBA που εξετάστηκαν παραπάνω, οι συναρτήσεις της Ultimate Suite βασίζονται στο .NET, γεγονός που παρέχει δύο βασικά πλεονεκτήματα:

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

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

    Με εγκατεστημένη την Ultimate Suite, η χρήση κανονικών εκφράσεων στο Excel είναι τόσο απλή όσο τα εξής δύο βήματα:

    1. Στο Δεδομένα Ablebits στην καρτέλα Κείμενο ομάδα, κάντε κλικ στο Εργαλεία Regex .

    2. Στο Εργαλεία Regex παράθυρο, κάντε τα εξής:
      • Επιλέξτε τα δεδομένα προέλευσης.
      • Εισάγετε το μοτίβο regex.
      • Επιλέξτε την επιθυμητή επιλογή: Αγώνας , Απόσπασμα , Αφαιρέστε το ή Αντικαταστήστε το .
      • Για να λάβετε το αποτέλεσμα ως τύπο και όχι ως τιμή, επιλέξτε την επιλογή Εισαγωγή ως τύπος πλαίσιο ελέγχου.
      • Πατήστε το κουμπί δράσης.

      Για παράδειγμα, για να αφαιρέσουμε τους αριθμούς πιστωτικών καρτών από τα κελιά A2:A6, διαμορφώνουμε αυτές τις ρυθμίσεις:

    Σε λίγο, μια συνάρτηση AblebitsRegex θα εισαχθεί σε μια νέα στήλη στα δεξιά των αρχικών σας δεδομένων. Στην περίπτωσή μας, ο τύπος είναι:

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4} \d{4}\b")

    Μόλις ο τύπος είναι εκεί, μπορείτε να τον επεξεργαστείτε, να τον αντιγράψετε ή να τον μετακινήσετε όπως οποιονδήποτε εγγενή τύπο.

    Πώς να εισαγάγετε έναν τύπο Regex απευθείας σε ένα κελί

    Οι συναρτήσεις AblebitsRegex μπορούν επίσης να εισαχθούν απευθείας σε ένα κελί χωρίς τη χρήση της διεπαφής του πρόσθετου:

    1. Κάντε κλικ στο fx στη γραμμή τύπων ή Λειτουργία εισαγωγής στο Τύποι καρτέλα.
    2. Στο Λειτουργία εισαγωγής παράθυρο διαλόγου, επιλέξτε το AblebitsUDFs κατηγορία, επιλέξτε τη λειτουργία που σας ενδιαφέρει και κάντε κλικ στο OK.

    3. Ορίστε τα ορίσματα της συνάρτησης όπως κάνετε συνήθως και κάντε κλικ στο OK. Έγινε!

    Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Εργαλεία Regex για το Excel.

    Αυτός είναι ο τρόπος χρήσης κανονικών εκφράσεων για την αντιστοίχιση, εξαγωγή, αντικατάσταση και αφαίρεση κειμένου σε κελιά του Excel. Σας ευχαριστώ για την ανάγνωση και ανυπομονώ να σας δω στο blog μας την επόμενη εβδομάδα!

    Διαθέσιμες λήψεις

    Excel Regex - παραδείγματα τύπων (.xlsm αρχείο)

    Ultimate Suite - δοκιμαστική έκδοση (.exe αρχείο)

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.