亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Inhaltsverzeichnis
Excel VBA Regex -Funktion zum Extrahieren von Zeichenfolgen
Regexpextract -Syntax
4 Dinge, die Sie über Regexpextract wissen sollten
Regex, um die Zahl aus der Zeichenfolge zu extrahieren
Erste Zahl extrahieren
Holen Sie sich die letzte Nummer
Regex, um alle übereinstimmungen zu extrahieren
Excel 365 und Excel 2021
Excel 2019 und niedriger
Extrahieren Sie alle übereinstimmungen in einer Zelle
Regex zum Extrahieren von Text aus der Zeichenfolge
Regex zum Extrahieren von E -Mail -Adresse aus der Zeichenfolge
Regex, um Domain aus der E -Mail zu extrahieren
Regelm??iger Ausdruck zum Extrahieren von Telefonnummern
Regex zum Extrahieren von Datum aus der Zeichenfolge
Regex, um die Zeit aus String zu extrahieren
Benutzerdefinierte .NET -basierte Regex -Funktion zum Extrahieren von Text in Excel
Wie man mit regelm??igen Ausdrücken Strings in Excel extrahiert
FungbitsRegexextrakt Syntax
Nutzungsnotizen
Regex zum Extrahieren von String zwischen zwei Zeichen
Wie man alle übereinstimmungen bekommt
Regex zum Extrahieren von Text zwischen zwei Zeichenfolgen
Regex, um Dom?ne aus der URL zu extrahieren
Verfügbare Downloads
Heim Themen excel Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Mar 28, 2025 pm 12:19 PM

In diesem Tutorial lernen Sie, wie Sie regul?re Ausdrücke in Excel verwenden, um Substrings zu finden und zu extrahieren, die einem bestimmten Muster entsprechen.

Microsoft Excel bietet eine Reihe von Funktionen, um Text aus Zellen zu extrahieren. Diese Funktionen k?nnen mit den meisten Herausforderungen der String -Extraktion in Ihren Arbeitsbl?ttern fertig werden. Die meisten, aber nicht alle. Wenn der Text stolpert, kommen regelm??ige Ausdrücke zur Rettung. Warten Sie ... Excel hat keine Regex -Funktionen! Es stimmt, keine eingebauten Funktionen. Aber es gibt nichts, was dich daran hindert, deine eigenen zu benutzen :)

Excel VBA Regex -Funktion zum Extrahieren von Zeichenfolgen

So fügen Sie Ihrem Excel eine benutzerdefinierte Regex -Extraktfunktion hinzu. Fügen Sie den folgenden Code in den VBA -Editor ein. Um regul?re Ausdrücke in VBA zu erm?glichen, verwenden wir das integrierte Microsoft Regexp-Objekt. Der Code wird von unserem Excel -Spezialisten Alex Frolov geschrieben.

Public Function RegExpExtract(text As String , pattern As String , Optional instance_num As Integer = 0, Optional match_case As Boolean = True ) Dim text_matches() As String Dim matches_index As Integer On Error GoTo ErrHandl RegExpExtract = "" Set regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = pattern regex.Global = True regex.multiline = true if true = match_case , dann regex.ignorecase = false sonst regex.ignorecase = true end if set Matches = regex.execute (text ) if 0 Als n?chstes übereinstimmt_index regexpextrakt = text_matches else regexpextract = übereinstimmt.Item (Instance_num - 1) Ende der Endfunktion ENGE -FUNKTION : REGEXPEXRACT = CVERR (XLERRVAL) Endfunktion Endfunktion

Wenn Sie nur wenig Erfahrung mit VBA haben, kann sich eine schrittweise Benutzerhandbuch als hilfreich erweisen: So fügen Sie VBA-Code in Excel ein.

Notiz. Um die Funktion zu funktionieren, speichern Sie Ihre Datei als makro-f?hige Arbeitsmappe (.xlsm).

Regexpextract -Syntax

Die Regexpextract -Funktion durchsucht nach einem Eingangszeichenfolge nach Werten, die einem regul?ren Ausdruck übereinstimmen und einen oder alle übereinstimmungen extrahiert.

Die Funktion hat die folgende Syntax:

Regexpextract (text, muster, [instance_num], [match_case])

Wo:

  • Text (Erforderlich) - Die Suchzeichenfolge.
  • Muster (erforderlich) - Der regul?re Ausdruck, der übereinstimmt. Wenn das Muster direkt in einer Formel geliefert wird, sollte er in doppelten Anführungszeichen eingeschlossen werden.
  • Instance_num (optional) - Eine Seriennummer, die angibt, welche Instanz extrahieren soll. Wenn es weggelassen wird, gibt alle gefundenen übereinstimmungen zurück (Standard).
  • Match_case (optional) - Definiert, ob Textfall übereinstimmt oder ignoriert werden soll. Wenn wahr oder ausgelassen (Standard), wird eine Fallempfindlichkeit durchgeführt. wenn falsch - Fall -unempfindlich.

Die Funktion funktioniert in allen Versionen von Excel 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013 und Excel 2010.

4 Dinge, die Sie über Regexpextract wissen sollten

Um die Funktion in Ihrem Excel effektiv zu verwenden, müssen einige wichtige Dinge beachten:

  1. Standardm??ig gibt die Funktion alle gefundenen übereinstimmungen in benachbarte Zellen zurück, wie in diesem Beispiel gezeigt. Um ein spezifisches Ereignis zu erhalten, liefern Sie das Argument von Instance_Num eine entsprechende Zahl.
  2. Standardm??ig ist die Funktion Fallempfindlichkeit . Setzen Sie für den Fall-unempfindlichen Matching das Argument match_case auf false. Aufgrund der VBA-Einschr?nkungen funktioniert das von Fall unempfindliche Konstrukt (? I) nicht.
  3. Wenn kein gültiges Muster gefunden wird , gibt die Funktion nichts zurück (leere Zeichenfolge).
  4. Wenn das Muster ungültig ist , ein #Value! Fehler treten auf.

Bevor Sie diese benutzerdefinierte Funktion in Ihren Arbeitsbl?ttern verwenden, müssen Sie verstehen, wozu sie f?hig ist, oder? Die folgenden Beispiele decken einige h?ufige Anwendungsf?lle ab und erkl?ren, warum sich das Verhalten in Dynamic Array Excel (Microsoft 365 und Excel 2021) und traditioneller Excel (2019 und ?ltere Versionen) unterscheiden kann.

Notiz. Out Regex -Beispiele werden für faire einfache Datens?tze geschrieben. Wir k?nnen nicht garantieren, dass sie in Ihren echten Arbeitsbl?ttern einwandfrei arbeiten. Diejenigen, die Erfahrung mit Regex haben, würden sich einig sein, dass das Schreiben regelm??iger Ausdrücke ein unendlicher Weg zur Perfektion ist - fast immer gibt es eine M?glichkeit, es eleganter oder in der Lage zu machen, eine gr??ere Reihe von Eingabedaten zu bearbeiten.

Regex, um die Zahl aus der Zeichenfolge zu extrahieren

Nach der grundlegenden Maxime des Unterrichts "von einfach zu komplex" beginnen wir mit einem sehr einfachen Fall: Anzahl der Anzahl aus der Zeichenfolge.

Das erste, was Sie entscheiden k?nnen, ist welche Nummer abgerufen werden: Erstens, letztes, spezifisches Ereignis oder alle Zahlen.

Erste Zahl extrahieren

Dies ist so einfach wie Regex. Da \ D eine Ziffer von 0 bis 9 und ein oder mehrmals bedeutet, nimmt unser regul?rer Ausdruck diese Form an:

Muster : \ d

Setzen Sie Instance_Num auf 1 und Sie erhalten das gewünschte Ergebnis:

=RegExpExtract(A5, "\d ", 1)

Wobei A5 die ursprüngliche Zeichenfolge ist.

Aus Gründen der Einsch?tzung k?nnen Sie das Muster in eine vordefinierte Zelle ($ A $ 2) eingeben und seine Adresse mit dem $ sign: sperren:

=RegExpExtract(A5, $A$2, 1)

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Holen Sie sich die letzte Nummer

Um die letzte Zahl in einer Zeichenfolge zu extrahieren, ist hier das zu verwendende Muster:

Muster : (\ d) (?!.*\ D)

In eine menschliche Sprache übersetzt, hei?t es: Finden Sie eine Nummer, die (überall, nicht nur sofort) von einer anderen Nummer befolgt wird. Um dies auszudrücken, verwenden wir eine negative Lookahead (?!.*\ D), was bedeutet, dass es rechts vom Muster keine andere Ziffer (\ d) geben sollte, unabh?ngig davon, wie viele andere Zeichen vor ihm sind.

=RegExpExtract(A5, "(\d )(?!.*\d)")

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Tipps:

  • Verwenden Sie \ D für Muster und eine geeignete Seriennummer für instance_num , um ein spezifisches Vorkommen zu erhalten.
  • Die Formel zum Extrahieren aller Zahlen wird im n?chsten Beispiel diskutiert.

Regex, um alle übereinstimmungen zu extrahieren

Wenn Sie unser Beispiel ein wenig weiter drücken, m?chten Sie alle Zahlen aus einer Zeichenfolge erhalten, nicht nur eines.

Wie Die Standardeinstellung ist alles übereinstimmt, sodass Sie diesen Parameter einfach weglassen:

=RegExpExtract(A2, "\d ")

Die Formel funktioniert wunderbar für eine einzelne Zelle, aber das Verhalten unterscheidet sich in dynamischen Array-Excel- und nicht-dynamischen Versionen.

Excel 365 und Excel 2021

Aufgrund der Unterstützung von dynamischen Arrays verschüttet eine regul?re Formel automatisch in so viele Zellen, wie es ben?tigt wird, um alle berechneten Ergebnisse anzuzeigen. In Bezug auf Excel wird dies als verschütteter Bereich bezeichnet:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Excel 2019 und niedriger

In der vor-dynamischen Excel würde die obige Formel nur eine übereinstimmung zurückgeben. Um mehrere übereinstimmungen zu erhalten, müssen Sie es zu einer Array -Formel machen. W?hlen Sie hierzu einen Zellbereich aus, geben Sie die Formel ein und drücken Sie die Strg -Eingabetaste, um sie zu vervollst?ndigen.

Ein Nachteil dieses Ansatzes ist ein Haufen #N/A -Fehler, die in "zus?tzlichen Zellen" auftreten. Bedauerlicherweise kann nichts dagegen unternommen werden (weder Ifror noch IFNA k?nnen es reparieren, leider).

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Extrahieren Sie alle übereinstimmungen in einer Zelle

Bei der Verarbeitung einer Datenspalte funktioniert der obige Ansatz offensichtlich nicht. In diesem Fall würde eine ideale L?sung alle übereinstimmungen in einer einzelnen Zelle zurückgeben. Um dies erledigt zu haben, liefern Sie die Ergebnisse von Regexpextract für die Textjoin -Funktion und trennen Sie sie mit jedem Trennzeichen, den Sie m?gen, sagen Sie ein Komma und einen Raum:

=TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d "))

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Notiz. Da die Textjoin -Funktion nur für Microsoft 365, Excel 2021 und Excel 2019 in Excel verfügbar ist, funktioniert die Formel in ?lteren Versionen nicht.

Regex zum Extrahieren von Text aus der Zeichenfolge

Das Extrahieren von Text aus einer alphanumerischen Zeichenfolge ist in Excel eine herausfordernde Aufgabe. Bei Regex wird es so einfach wie Kuchen. Verwenden Sie einfach eine negierte Klasse, um alles zu entsprechen, was keine Ziffer ist.

Muster : [^\ d]

Um Substrings in einzelnen Zellen (Verschüttungsbereich) zu erhalten, lautet die Formel:

=RegExpExtract(A5, "[^\d] ")

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Um alle übereinstimmungen in eine Zelle auszugeben, nisten Sie die Regexpextradenfunktion in Textjoin wie folgt:

=TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d] "))

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex zum Extrahieren von E -Mail -Adresse aus der Zeichenfolge

Um eine E -Mail -Adresse aus einer Zeichenfolge mit vielen verschiedenen Informationen herauszuholen, schreiben Sie einen regul?ren Ausdruck, der die E -Mail -Adressstruktur repliziert.

Muster : [\ W \. \-] @[a-za-z0-9 \. \-] \. [A-za-z] {2,24}

Wenn wir diese Regex brechen, bekommen wir:

  • [\ w \. \-] ist ein Benutzername, der 1 oder mehr alphanumerische Zeichen, Unterstriche, Punkte und Bindestriche umfassen kann.
  • @ Symbol
  • [A-Za-Z0-9 \. \-] ist ein Dom?nenname, der aus: Gro?- und Kleinbuchstaben, Ziffern, Bindestrichen und Punkten (im Fall von Subdom?nen) besteht. Unterstriche sind hier nicht zul?ssig, daher werden 3 verschiedene Zeichens?tze (wie Az AZ und 0-9) anstelle von \ w verwendet, die zu jedem Buchstaben, der Ziffern oder Unterstriche entspricht.
  • \. [A-za-z] {2,24} ist eine Dom?ne auf der obersten Ebene. Besteht aus einem Punkt, gefolgt von Gro?- und Kleinbuchstaben. Die meisten Dom?nen auf h?chster Ebene sind 3 Buchstaben lang (z. B. .com .org, .edu usw.), aber theoretisch kann es 2 bis 24 Buchstaben (die am l?ngsten registrierte TLD) enthalten.

Unter der Annahme, dass die Zeichenfolge in A5 und das Muster in A2 befindet, lautet die Formel zum Extrahieren einer E -Mail -Adresse:

=RegExpExtract(A5, $A$2)

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex, um Domain aus der E -Mail zu extrahieren

Wenn es darum geht, eine E -Mail -Domain zu extrahieren, wird der erste Gedanke, der in den Sinn kommt, mit einer erfassenden Gruppe einnutzt, um Text zu finden, der unmittelbar dem @ -Zeichen folgt.

Muster : @([a-za-z0-9 \. \-] \. [A-za-z] {2,24})

Servieren Sie es unserer Regexp -Funktion:

=RegExpExtract(A5, "@([A-Za-z0-9\.\-] \.[A-Za-z]{2,24})")

Und Sie erhalten dieses Ergebnis:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Mit klassischen regul?ren Ausdrücken ist alles au?erhalb einer erfassenden Gruppe nicht in die Extraktion enthalten. Niemand wei?, warum VBA Regex unterschiedlich funktioniert und "@" auch erfasst. Um es loszuwerden, k?nnen Sie das erste Zeichen aus dem Ergebnis entfernen, indem Sie es durch eine leere Zeichenfolge ersetzen.

=REPLACE(RegExpExtract(A5, "@([az\d][az\d\-\.]*\.[az]{2,})", 1, FALSE), 1, 1, "")

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regelm??iger Ausdruck zum Extrahieren von Telefonnummern

Telefonnummern k?nnen auf viele verschiedene Arten geschrieben werden, weshalb es so gut wie unm?glich ist, eine L?sung zu finden, die unter allen Umst?nden funktioniert. Trotzdem k?nnen Sie alle in Ihrem Datensatz verwendeten Formate aufschreiben und versuchen, sie anzupassen.

In diesem Beispiel werden wir eine Regex erstellen, die in jedem dieser Formate Telefonnummern extrahiert:

(123) 345-6789

(123) 345 6789

(123) 3456789

123-345-6789

123.345.6789

123 345 6789

1233456789

Muster : \ (? \ D {3} [-\. \)]*\ D {3} [-\. ]? \ d {4} \ b

  • Der erste Teil \ (? \ D {3} entspricht der Klammung mit Null oder einer ?ffnung, gefolgt von drei Ziffern D {3}.
  • Der [-\. \).
  • Als n?chstes haben wir wieder drei Ziffern d {3}, gefolgt von einem Bindestrich, einer Periode oder einem Raum [-\. ]? 0 oder 1 Mal erscheinen.
  • Danach gibt es eine Gruppe von vier Ziffern \ d {4}.
  • Schlie?lich gibt es eine Wortgrenze, die feststellt, dass eine Telefonnummer, nach der wir suchen, nicht Teil einer gr??eren Nummer sein kann.

Die vollst?ndige Formel nimmt diese Form an:

=RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Bitte beachten Sie, dass der obige Regex einige falsch positive Ergebnisse wie 123 zurückgeben kann) 456 7899 oder (123 456 7899. Die folgende Version behebt diese Probleme. Diese Syntax funktioniert jedoch nur in VBA Regexp-Funktionen, nicht in klassischen regul?ren Ausdrücken.

Muster : (\ (\ d {3} \) | \ d {3}) [-\. ]? \ d {3} [-\. ]? \ d {4} \ b

Regex zum Extrahieren von Datum aus der Zeichenfolge

Ein regelm??iger Ausdruck zum Extrahieren eines Datums h?ngt vom Format ab, in dem das Datum in einer Zeichenfolge erscheint. Zum Beispiel:

Um Daten wie 1/1/21 oder 01.01.2021 zu extrahieren, ist der Regex: \ d {1,2} \/\ d {1,2} \/(\ d {4} | \ d {2})

Es sucht nach einer Gruppe von 1 oder 2 Ziffern d {1,2}, gefolgt von einem Schr?gstrich, gefolgt von einer anderen Gruppe von 1 oder 2 Ziffern, gefolgt von einem Schr?gstrich, gefolgt von einer Gruppe von 4 oder 2 Ziffern (\ d {4} | \ d {2}). Bitte beachten Sie, dass wir zuerst nach 4-stelligen Jahren und erst dann nach 2-stelligen Jahren suchen. Wenn wir es in die andere Richtung schreiben, werden nur die ersten zwei Ziffern aus allen Jahren ausgew?hlt. Dies liegt daran, dass nach der ersten Bedingung in der Abwechslung oder im Konstrukt übereinstimmt, die verbleibenden Bedingungen nicht überprüft werden.

Um Daten wie 1-Jan-21 oder 01-Jan-2021 abzurufen, ist das Muster: \ d {1,2}-[a-za-z] {3}-\ d {2,4}

Es sucht nach einer Gruppe von 1 oder 2 Ziffern, gefolgt von einem Bindestrich, gefolgt von einer Gruppe von 3 Gro?- oder Kleinbuchstaben, gefolgt von einem Bindestrich, gefolgt von einer Gruppe von 4 oder 2 Ziffern.

Nachdem wir die beiden Muster miteinander kombiniert haben, erhalten wir die folgende Regex:

Muster : \ b \ d {1,2} [\/-] (\ d {1,2} | [a-za-z] {3}) [\/-] (\ d {4} | \ d {2}) \ b

Wo:

  • Der erste Teil ist 1 oder 2 Ziffern: \ d {1,2}
  • Der zweite Teil ist entweder 1 oder 2 Ziffern oder 3 Buchstaben: (\ d {1,2} | [a-za-z] {3})
  • Der dritte Teil ist eine Gruppe von 4 oder 2 Ziffern: (\ d {4} | \ d {2})
  • Der Abgrenzer ist entweder ein Vorw?rts-Schr?gstrich oder ein Bindestrich: [\/-]
  • Eine Wortgrenze \ b wird auf beiden Seiten platziert, um klar zu machen, dass ein Datum ein separates Wort ist und nicht Teil einer gr??eren Zeichenfolge.

Wie Sie im Bild unten sehen k?nnen, zieht es erfolgreich Daten aus und l?sst Substrings wie den 22.11.333 aus. Es gibt jedoch immer noch falsche positive Ergebnisse zurück. In unserem Fall stimmt der Substring 11-ABC-2222 in A9 technisch mit dem Datumsformat DD-MMM-YJJJ zusammen und wird daher extrahiert.

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Um Fehlalarme zu beseitigen, k?nnen Sie den Teil [a-za-z] {3} durch eine vollst?ndige Liste der Abkürzungen mit 3-Buchstabenmonat ersetzen:

Muster : \ b \ d {1,2} [\/-] (\ d {1,2} | (Jan | feb | mar | Apr | May | jul | aug | sep | oct | nov | dec)) [\/-] (\ d {4} | {2 {2}) \ b

Um den Brieffall zu ignorieren, setzen wir das letzte Argument unserer benutzerdefinierten Funktion auf false:

=RegExpExtract(A5, $A$2, 1, FALSE)

Und diesmal erhalten wir ein perfektes Ergebnis:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex, um die Zeit aus String zu extrahieren

Um Zeit im HH: MM oder HH: MM: SS -Format zu bekommen, wirkt der folgende Ausdruck einen Genuss.

Muster : \ b (0? [0-9] | 1 [0-2]): [0-5] \ D (: [0-5] \ D)? \ S? (Am | PM) \ B | \ B ([0-9] | [0-1] \ D | 2 [0-3]): [0-5] \ D (: [0-0-5] \ D)?

Wenn Sie diese Regex abbauen, k?nnen Sie 2 Teile von | getrennt sehen Das erm?glicht die oder Logik. Mit anderen Worten, wir suchen nach einem Substring, das einem der folgenden Ausdrücke entspricht.

Ausdruck 1 : \ B (0? [0-9] | 1 [0-2]): [0-5] \ D (: [0-5] \ D)? \ S? (Am | PM) \ B

Ruft die Zeiten mit AM/PM ab.

Die Stunde kann eine beliebige Zahl von 0 bis 12 sein. Um es zu erhalten, verwenden wir das oder Konstrukt ([0-9] | 1 [0-2]), wobei:

  • [0-9] entspricht einer beliebigen Zahl von 0 bis 9
  • 1 [0-2] übereinstimmen eine beliebige Zahl von 10 bis 12

Minute [0-5] \ D ist eine beliebige Zahl von 00 bis 59.

Zweitens (: [0-5] \ d)? ist auch eine Zahl von 00 bis 59. die? Quantifizierer bedeutet Null oder ein Ereignis, da Sekunden im Zeitwert enthalten sein k?nnen oder nicht.

Ausdruck 2 : \ B ([0-9] | [0-1] \ D | 2 [0-3]): [0-5] \ D (: [0-5] \ D)? (?! :) :) :) :) :) :)

Extrahiert Zeiten ohne AM/PM.

Der Stundenteil kann eine beliebige Zahl von 0 bis 32 sein. Um es zu erhalten, wird ein anderes Konstrukt verwendet ([0-9] | [0-1] \ D | 2 [0-3]), wobei:

  • [0-9] entspricht einer beliebigen Zahl von 0 bis 9
  • [0-1] \ D entspricht einer beliebigen Zahl von 00 bis 19
  • 2 [0-3] entspricht einer beliebigen Zahl von 20 bis 23

Die Minute und die zweiten Teile sind die gleichen wie in Expression 1 oben.

Das negative Lookahead (?! :) wird hinzugefügt, um Strings wie 20:30:80 zu überspringen.

Da PM/AM entweder Gro?buchstaben oder Kleinbuchstaben sein kann, machen wir die Funktionsfall-unempfindlich:

=RegExpExtract(A5, $A$2, 1, FALSE)

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Hoffentlich gaben Ihnen die obigen Beispiele einige Ideen zur Verwendung regelm??iger Ausdrücke in Ihren Excel -Arbeitsbl?ttern. Leider werden in VBA nicht alle Funktionen klassischer regul?rer Ausdrücke unterstützt. Wenn Ihre Aufgabe mit VBA Regexp nicht erledigt werden kann, empfehle ich Ihnen, den n?chsten Teil zu lesen, in dem viel leistungsst?rkere .NET -Regex -Funktionen diskutiert werden.

Benutzerdefinierte .NET -basierte Regex -Funktion zum Extrahieren von Text in Excel

Im Gegensatz zu VBA Regexp -Funktionen, die von jedem Excel -Benutzer verfasst werden k?nnen, ist .NET Regex der Bereich des Entwicklers. Das Microsoft .NET-Framework unterstützt die mit Perl 5 kompatibele regul?re Expressions-Syntax mit vollem Einfachen. Dieser Artikel wird Ihnen nicht weiterleiten, wie Sie solche Funktionen schreiben (ich bin kein Programmierer und habe keine geringste Idee, wie es geht :)

Vier leistungsstarke Funktionen, die von der Standard .NET Regex -Engine verarbeitet wurden, werden bereits von unseren Entwicklern verfasst und in Ultimate Suite enthalten. Im Folgenden werden wir einige praktische Verwendungen der Funktion demonstrieren, die speziell für das Extrahieren von Text in Excel entwickelt wurde.

Tipp. Informationen zur .NET Regex -Syntax finden Sie in der regul?ren Ausdruckssprache .NET.

Wie man mit regelm??igen Ausdrücken Strings in Excel extrahiert

Angenommen, Sie haben die neueste Version von Ultimate Suite installiert, wobei das Extrahieren von Text mit regul?ren Ausdrücken auf diese beiden Schritte hinausging:

  1. Klicken Sie auf der Registerkarte "AbleTbits" in der Textgruppe auf Regex -Tools .

    Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

  2. W?hlen Sie im Bereich Regex Tools die Quelldaten aus, geben Sie Ihr Regex -Muster ein und w?hlen Sie die Option Extract . Um das Ergebnis als benutzerdefinierte Funktion und nicht als Wert zu erhalten, w?hlen Sie das Kontrollk?stchen Einfügen als Formel . Wenn Sie fertig sind, klicken Sie auf die Schaltfl?che Extrahieren .

    Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Die Ergebnisse werden in einer neuen Spalte rechts von Ihren ursprünglichen Daten angezeigt:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

FungbitsRegexextrakt Syntax

Unsere benutzerdefinierte Funktion hat die folgende Syntax:

FungbitsRegexextract (Referenz, regul?r_expression)

Wo:

  • Referenz (Erforderlich) - Eine Referenz auf die Zelle, die die Quellzeichenfolge enth?lt.
  • Regulal_expression (erforderlich) - Das zu übereinstimmende Regex -Muster.

Wichtiger Hinweis! Die Funktion funktioniert nur auf den Maschinen mit ultimativer Suite für Excel installiert.

Nutzungsnotizen

Um Ihre Lernkurve und Ihre Erfahrung angenehmer zu gestalten, achten Sie bitte auf diese Punkte:

  1. Um eine Formel zu erstellen, k?nnen Sie unsere Regex -Tools oder den Dialogfeld "Einfügen von Excel einfügen" verwenden oder den vollst?ndigen Funktionsnamen in einer Zelle eingeben. Sobald die Formel eingefügt wurde, k?nnen Sie sie wie jede native Formel verwalten (bearbeiten, kopieren oder verschieben).
  2. Das Muster, das Sie in den Bereich Regex Tools eingeben, geht zum 2. Argument. Es ist auch m?glich, eine regelm??ige Expression in einer separaten Zelle zu behalten. Verwenden Sie in diesem Fall einfach eine Zellreferenz für das 2. Argument.
  3. Die Funktion extrahiert die erste gefundene übereinstimmung .
  4. Standardm??ig ist die Funktion Fallempfindlichkeit . Verwenden Sie für Fall-unempfindliche übereinstimmungen das Muster (? I).
  5. Wenn keine übereinstimmung gefunden wird, wird ein #n/ein Fehler zurückgegeben.

Regex zum Extrahieren von String zwischen zwei Zeichen

Um einen Text zwischen zwei Zeichen zu erhalten, k?nnen Sie entweder eine erfassende Gruppe oder eine Look-Arounds verwenden.

Nehmen wir an, Sie m?chten Text zwischen Klammern extrahieren. Eine Erfassungsgruppe ist der einfachste Weg.

Muster 1 : \ [(.*?) \]

Mit einem positiven Aussehen und Lookahead wird das Ergebnis genau das gleiche sein.

Muster 2 : (?

Bitte achten Sie darauf, dass unsere Erfassungsgruppe (*?) Eine faule Suche nach Text zwischen zwei Klammern durchführt - vom ersten [zum ersten]. Eine erfassende Gruppe ohne Fragezeichen (.*) Würde eine gierige Suche durchführen und alles von Anfang an [bis zum letzten] erfassen.

Mit dem Muster in A2 lautet die Formel wie folgt:

=AblebitsRegexExtract(A5, $A$2)

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Wie man alle übereinstimmungen bekommt

Wie bereits erw?hnt, kann die Funktion "ferleBitSregexextrakt) nur eine übereinstimmung extrahieren. Um alle übereinstimmungen zu erhalten, k?nnen Sie die VBA -Funktion verwenden, die wir zuvor besprochen haben. Es gibt jedoch eine Einschr?nkung - VBA Regexp unterstützt keine Gruppen, sodass das obige Muster auch die "Grenze" -Scharaktere in unserem Fall zurückgeben.

=TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Um die Klammern loszuwerden, ersetzen Sie sie durch diese Formel durch leere Saiten (""):

=SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")

Für eine bessere Lesbarkeit verwenden wir ein Komma für den Trennzeichen.

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex zum Extrahieren von Text zwischen zwei Zeichenfolgen

Der Ansatz, den wir zum Ausziehen von Text zwischen zwei Zeichen herausgearbeitet haben, wird auch zum Extrahieren von Text zwischen zwei Zeichenfolgen arbeiten.

Verwenden Sie beispielsweise alles zwischen "Test 1" und "Test 2", um den folgenden regul?ren Ausdruck zu verwenden.

Muster : Test 1 (.*?) Test 2

Die vollst?ndige Formel lautet:

=AblebitsRegexExtract(A5, "test 1(.*?)test 2")

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex, um Dom?ne aus der URL zu extrahieren

Selbst bei regul?ren Ausdrücken ist das Extrahieren von Domainnamen aus URLs keine triviale Aufgabe. Das Schlüsselelement, das den Trick ausmacht, sind nicht kaufende Gruppen. W?hlen Sie abh?ngig von Ihrem ultimativen Ziel eine der folgenden Regexes.

Um einen vollst?ndigen Domainnamen einschlie?lich Subdomains zu erhalten

Muster : (?: Https? \: |^| \ S) \/\/((?: [A-za-z \ d \-\.] {2,255} \.)? [A-za-z \ d \-] {1,63} \.

Eine Dom?ne auf zweiter Ebene ohne Subdom?nen zu bekommen

Muster : (?: Https? \: |^| \ S) \/\/(?: [A-za-z \ d \-\.] {2,255} \.)?

Lassen Sie uns nun sehen, wie diese regul?ren Ausdrücke auf einem Beispiel "https://www.mobile.ablebits.com" als Beispiel -URL funktionieren:

  • (?: https? \: |^| \ s) - Nicht -Kreis -Gruppe. Es übereinstimmt, f?ngt aber nicht ein Substring erfasst, dem eines der folgenden: https, http, Start von String (^), ein Whitespace -Zeichen (\ s). Die letzten beiden Elemente sind enthalten, um Protokoll-Relativ-URLs wie "http://google.com" zu verarbeiten.
  • \/ \/ ??- Zwei Vorw?rts -Schr?gstriche (jeweils wird ein Backslash vorgegangen, um der besonderen Bedeutung des Vorw?rts -Schr?gs zu entkommen und ihn buchst?blich zu interpretieren).
  • (?: [A-za-z \ d \-\.] {2,255} \.)? -Nicht-Kauf-Gruppe zur Identifizierung von Dom?nen auf der dritten Stufe, der vierten Ebene usw., falls vorhanden ( Mobile in unserer Stichproben-URL). Im ersten Muster wird es innerhalb einer gr??eren Erfassungsgruppe platziert, um alle derartigen Subdom?nen in die Extraktion einzubeziehen. Eine Subdom?ne kann 2 bis 255 Zeichen lang sein, daher der {2.255} Quantifizierer.
  • ([A-za-z \ d \-] {1,63} \. [A-za-z] {2,24})-Gruppe erfassen, um die Dom?ne der zweiten Ebene ( Ab k?nnen ) und die Domain der obersten Ebene ( Com ) zu extrahieren. Die maximale L?nge einer Dom?ne auf der zweiten Ebene betr?gt 63 Zeichen. Die derzeit existierende Dom?ne auf der obersten Ebene enth?lt 24 Zeichen.

Je nachdem, welcher regul?re Ausdruck in A2 eingegeben wird, führt die folgende Formel zu unterschiedlichen Ergebnissen:

=AblebitsRegexExtract(A5, $A$2)

Regex, um den vollst?ndigen Domain -Namen mit allen Subdom?nen zu extrahieren:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

Regex, um eine Dom?ne der zweiten Ebene ohne Subdom?nen zu extrahieren:

Regex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen)

So extrahieren Sie mit regelm??igen Ausdrücken Teile des Textes in Excel. Ich danke Ihnen für das Lesen und freue mich darauf, Sie n?chste Woche in unserem Blog zu sehen!

Verfügbare Downloads

Excel Regex extrahieren Beispiele (.xlsm -Datei) Ultimate Suite -Testversion (.exe -Datei)

Das obige ist der detaillierte Inhalt vonRegex, um Saiten in Excel zu extrahieren (eine oder alle übereinstimmungen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72