Verwendung regulärer Ausdrücke (Regex) in Microsoft Excel sowohl in Zellen als auch in Schleifen
Wie kann ich reguläre Ausdrücke in Excel, und nehmen Sie Vorteil von Excel ist die leistungsfähige grid-setup für die Daten-manipulation?
- In-cell-Funktion zurück abgestimmten Muster oder ersetzt den Wert in string.
- Sub Schleife durch eine Spalte von Daten und extrahieren Sie passt zu benachbarten Zellen.
- Welche Einrichtung ist nötig?
- Was sind Excel Sonderzeichen für Reguläre Ausdrücke?
Verstehe ich Regex ist nicht ideal für viele Situationen ( Die Verwendung oder nicht-Verwendung von regulären Ausdrücken? ), da excel verwenden können Left
Mid
Right
Instr
geben Sie die Befehle für ähnliche Manipulationen.
InformationsquelleAutor der Frage Portland Runner | 2014-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reguläre Ausdrücke verwendet Pattern-Matching.
Zur Verwendung in Excel gehen Sie folgendermaßen vor :
Schritt 1: Hinzufügen VBA-Verweis auf "Microsoft VBScript Regular Expressions 5.5"
Schritt 2: Definieren Sie Ihre Muster
Grundlegende Definitionen:
-
Bereich.a-z
entspricht einem Kleinbuchstaben von a bis z0-5
steht für eine beliebige Anzahl von 0 bis 5[]
Entsprechen genau einem der Objekte, die sich innerhalb dieser Klammern.[a]
entspricht dem Buchstaben a[abc]
entspricht einem einzelnen Buchstaben, das kann a, b oder c[a-z]
entspricht einem beliebigen einzelnen Kleinbuchstaben des Alphabets.()
Gruppen die verschiedene Spiele für die Rückkehr Zwecke. Siehe Beispiele unten.{}
Multiplikator für die wiederholte Kopien des Musters definiert werden, bevor es.[a]{2}
entspricht zwei aufeinander folgenden kleinen Buchstaben ein:aa
[a]{1,3}
entspricht mindestens einem und bis zu drei Kleinbuchstabena
aa
aaa
+
Match mindestens eines oder mehrere der Muster definiert werden, bevor es.a+
passen aufeinander folgenden a ' sa
aa
aaa
und so weiter?
Übereinstimmung mit null oder einem der Muster definiert werden, bevor es.[a-z]?
entspricht, leer-string oder beliebige Kleinbuchstaben.*
Übereinstimmung mit null oder mehr von dem Muster, bevor Sie es.- E. g. Wildcard für Muster, die möglicherweise oder möglicherweise nicht vorhanden.
- E. g.
[a-z]*
passt leere Zeichenfolge oder die Zeichenfolge von Kleinbuchstaben..
Entspricht einem beliebigen Zeichen außer newline\n
a.
Entspricht einem zwei-Zeichen-Zeichenkette beginnend mit a und endend mit nichts außer\n
|
ODER Betreibera|b
bedeutet entwedera
oderb
abgestimmt werden können.red|white|orange
entspricht genau einer der Farben.^
Not-operator[^0-9]
Zeichen können nicht enthalten eine Reihe[^aA]
Zeichen können nicht in Kleinbuchstaben angegeben werdena
oder oberen FallA
\
Entweicht besonderen Charakter, folgt (überschreibt oben beschriebenen Verhalten)\.
\\
\(
\?
\$
\^
Verankerung Muster:
^
Match auftreten zu Beginn der Zeichenfolge^a
Erste Zeichen muss jedoch ein Buchstabea
^[0-9]
Erste Zeichen muss eine Zahl sein.$
Übereinstimmung auftreten muss am Ende der Zeichenfolgea$
Letzte Zeichen muss Buchstabea
Vorrang-Tabelle:
Vordefinierte Zeichen Abkürzungen:
Beispiel 1: Ausführen als makro
Den folgenden Beispiel-makro sieht den Wert in Zelle
A1
zu sehen, wenn die ersten 1 oder 2 Zeichen sind Ziffern. Wenn dem so ist, werden Sie entfernt und der rest der Zeichenfolge wird angezeigt. Wenn nicht, dann eine box erscheint, die Sie informiert, dass keine übereinstimmung gefunden wird. ZelleA1
Werte12abc
zurückabc
Wert der1abc
zurückabc
Wert derabc123
wird wieder "Nicht Abgestimmt", weil die Ziffern wurden nicht am Anfang der Zeichenfolge.Beispiel 2: die Ausführung mit einem in-cell-Funktion
Dieses Beispiel ist gleich wie Beispiel 1, jedoch wird das setup ausgeführt werden als ein in-cell-Funktion. Um zu verwenden, ändern Sie den code zu diesem:
Platz Ihren Streicher ("12abc") in Zelle
A1
. Geben Sie diese Formel=simpleCellRegex(A1)
in ZelleB1
und das Ergebnis wird "abc".Beispiel 3: Schleife Durch Auswahl
Dieses Beispiel ist gleich wie Beispiel 1, aber durchläuft einen Bereich von Zellen.
Beispiel 4: Spaltung neben verschiedenen mustern
In diesem Beispiel durchläuft eine Reihe (
A1
A2
&A3
) und sucht nach einer Zeichenfolge, beginnend mit drei Ziffern, gefolgt von einem einzelnen Buchstaben und dann 4 Ziffern. Die Ausgabe teilt abgesehen das Muster passt in den angrenzenden Zellen mithilfe der()
.$1
stellt die ersten Muster abgestimmt innerhalb der ersten Reihe von()
.Ergebnisse:
Weitere Muster Beispiele
InformationsquelleAutor der Antwort Portland Runner
Machen Verwendung von regulären Ausdrücken direkt in Excel-Formeln die folgende UDF (user defined function), können hilfreich sein. Es mehr oder weniger direkt verfügbar macht reguläre Ausdrücke-Funktionalität, wie eine excel-Funktion.
Wie es funktioniert
Dauert es 2-3 Parameter.
$0
$1
$2
und so weiter.$0
ist das gesamte match,$1
- und up entsprechen dem jeweiligen Spiel-Gruppen im regulären Ausdruck. Standardmäßig$0
.Einige Beispiele
Extrahieren einer E-Mail-Adresse:
Ergebnisse in:
[email protected]
Extrahieren mehrere Teilstrings:
Ergebnisse in:
E-Mail: [email protected], Name: Peter Gordon
Auseinander zu nehmen eine kombinierte Zeichenfolge in einer einzelnen Zelle in Ihre Bestandteile auf, in die mehrere Zellen:
Ergebnisse in:
Peter Gordon
[email protected]
...Wie zu verwenden
Verwenden das UDF folgende (grob basierend auf dieser Microsoft-Seite. Sie haben einige gute zusätzliche info!):
ALT+F11
zu öffnen Microsoft Visual Basic für Applikationen - - Editor.Klicken Sie auf Modul Einfügen. Wenn Sie geben Sie Ihrem Modul einen anderen Namen, machen Sie sicher, dass das Modul nicht nicht haben den gleichen Namen wie die UDF unten (z.B. Benennung des Moduls
Regex
und die Funktionregex
Ursachen #NAME! Fehler).Im großen Textfenster in der Mitte legen Sie die folgenden:
Speichern und schließen Sie die Microsoft Visual Basic für Applikationen - - Editor-Fenster.
InformationsquelleAutor der Antwort Patrick Böker
Erweiterung auf patszim's Antwort für diejenigen in Eile.
fügen Sie den folgenden code:
Den regex-Muster ist in einer der Zellen und absolute Referenzierung verwendet wird.
Funktion gebunden werden, um die Arbeitsmappe, die Ihr erstellt.
Wenn es eine Notwendigkeit für Sie zu sein verwendet in anderen Arbeitsmappen, speichern Sie die Funktion in Persönlichen.XLSB
InformationsquelleAutor der Antwort SAm
Hier ist mein Versuch:
InformationsquelleAutor der Antwort Vikas Gautam
Hier ist ein
regex_subst()
Funktion. Beispiele:Ist hier der vereinfachte code (einfacher für mich jedenfalls). Ich konnte nicht herausfinden, wie man eine passende Ausgabe-pattern mit dem oben zu arbeiten, wie meine Beispiele:
InformationsquelleAutor der Antwort jgreve
Ich brauchte, um diese als ein-Zell-Funktion (wie
SUM
oderVLOOKUP
) und festgestellt, dass es einfach zu:Erstellen Sie die folgende Funktion entweder in der Arbeitsmappe oder in ein eigenes Modul:
Dann können Sie in der Zelle mit
=REGPLACE(B1, "(\w) (\d+)", "$1$2")
(ex -: "243" , "A243")InformationsquelleAutor der Antwort DeezCashews