REGEXFIND( )-Funktion
Gibt einen logischen Wert zurück, der angibt, ob das auf Basis eines regulären Ausdrucks angegebene Muster in einer Zeichenfolge vorkommt.
Syntax
REGEXFIND(Zeichenfolge; Muster)"
Parameter
Name | Typ | Beschreibung |
---|---|---|
Zeichenfolge |
Zeichen |
Das Feld, der Ausdruck oder der Literalwert, das/der auf ein übereinstimmendes Muster zu überprüfen ist. |
Muster |
Zeichen |
Die zu suchende Musterzeichenfolge (der reguläre Ausdruck). Muster kann Literalzeichen, Metazeichen oder eine Kombination hieraus beinhalten. Literalzeichen beinhalten alle alphanumerischen Zeichen, einige Satzzeichen und Leerzeichen. Die Suche unterscheidet zwischen Groß- und Kleinschreibung. Große und kleine alphanumerische Zeichen müssen also explizit so angegeben werden. |
Ausgabe
Logisch. Gibt T (true, wahr) zurück, wenn das angegebene Muster gefunden wurde, andernfalls F (false, falsch).
Beispiele
Einfache Beispiele
Buchstabenmuster
Gibt „T“ für alle Datensätze zurück, welche „Phoenix“, „Austin“ oder „Los Angeles“ im Feld Lieferantenstadt enthalten. Gibt ansonsten „F“ zurück:
REGEXFIND(Lieferantenstadt; "Phoenix|Austin|Los Angeles")
Gibt „T“ für alle Nachnamen zurück, die mit „John“ oder „Jon“ beginnen. Zum Beispiel: John, Jon, Johnson, Johnston, Jonson, Jonston, Jones usw. Gibt ansonsten „F“ zurück:
REGEXFIND(Nachname;"^Joh?n")
Gibt „T“ nur für Nachnamen wie „John“ oder „Jon“ zurück. Gibt ansonsten „F“ zurück:
REGEXFIND(Nachname;"^Joh?n\b")
Numerische Zeichenmuster
Gibt „T“ für alle Datensätze zurück, deren Rechnungsnummern „98“ beinhalten. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsnummern mit „98“ beginnen. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "\b98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsnummern mit „98“ enden. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "98\b")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsnummern „98“ an der fünften und sechsten Stelle beinhalten. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "\b\d\d\d\d98")
REGEXFIND(Rechnungsnummer; "\b\d{4}98")
Muster mit unterschiedlichen Zeichen
Gibt „T“ für alle Datensätze zurück, deren Produktcodes mit drei Zahlen beginnen, auf die ein Bindestrich und sechs Buchstaben folgen. Gibt ansonsten „F“ zurück:
REGEXFIND(Produktcode; "\b\d{3}-[a-zA-Z]{6}\b")
Gibt „T“ für alle Datensätze zurück, deren Produktcodes mit drei oder mehr Zahlen beginnen, auf die ein Bindestrich und sechs oder mehr Buchstaben folgen. Gibt ansonsten „F“ zurück:
REGEXFIND(Produktcode; "\b\d{3,}-[a-zA-Z]{6}")
Gibt „T“ für alle Datensätze mit alphanumerischen Rechnungsbezeichnern zurück, die „98“ an der fünften und sechsten Stelle enthalten. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "\b\w{4}98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsbezeichner die beiden folgenden Elemente beinhalten. Ansonsten wird „F“ zurückgegeben:
- beliebige Zeichen an den ersten vier Stellen
- „98“ an der fünften und sechsten Stelle
REGEXFIND(Rechnungsnummer; "\b.{4}98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsbezeichner „98“ nach ein bis vier ersten Zeichen beinhalten. Gibt ansonsten „F“ zurück:
REGEXFIND(Rechnungsnummer; "\b.{1,4}98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsbezeichner alle folgenden Elemente beinhalten. Ansonsten wird „F“ zurückgegeben:
- beliebige Zeichen an den ersten drei Stellen
- „5“ oder „6“ an der vierten Stelle
- „98“ an der fünften und sechsten Stelle
REGEXFIND(Rechnungsnummer; "\b.{3}[56]98")
Gibt „T“ für alle Datensätze zurück, deren Rechnungsbezeichner alle folgenden Elemente beinhalten. Ansonsten wird „F“ zurückgegeben:
- beliebige Zeichen an den ersten zwei Stellen
- „55“ oder „56“ an der dritten und vierten Stelle
- „98“ an der fünften und sechsten Stelle
REGEXFIND(Rechnungsnummer; "\b.{2}(55|56)98")
Bemerkungen
Funktionsweise
Die REGEXFIND( )-Funktion verwendet einen regulären Ausdruck, um Daten in Analytics zu suchen.
Reguläre Ausdrücke sind leistungsstarke und flexible Suchbegriffe, die Literalzeichen mit Metazeichen kombinieren. Metazeichen sind Sonderzeichen, die eine breite Auswahl an Suchoperationen durchführen.
Beispiel:
REGEXFIND(Nachname;"Sm(i|y)the{0,1}")
verwendet die Metazeichen Gruppe ( ), Alternierung | und Quantifizierer { } zur Erstellung eines regulären Ausdrucks, der „Smith“, „Smyth“, „Smithe“ oder „Smythe“ im Feld Nachname findet.
Sequenziell durchgeführter Abgleich
Der Abgleich zwischen den Werten Zeichenfolge und Muster wird sequenziell durchgeführt. Im obigen Beispiel:
- „S“ wird mit der ersten Position im Feld Nachname abgeglichen
- „m“ wird mit der zweiten Position abgeglichen
- „i“ und „y“ werden mit der dritten Position abgeglichen
- „t“ wird mit der vierten Position abgeglichen
- „h“ wird mit der fünften Position abgeglichen
- „e“ wird mit der sechsten Position abgeglichen, falls eine sechste Position im Quellwert vorhanden ist
Wann Sie REGEXFIND( ) verwenden sollen
Verwenden Sie REGEXFIND( ), um Daten mit einfachem oder komplexem Musterabgleich zu suchen.
Manchmal ist es nicht einfach, reguläre Ausdrücke zu erstellen, insbesondere wenn Sie mit der Syntax noch nicht so vertraut sind. Unter Umständen können Sie Ihre Suchergebnisse auch mit den einfacheren Analytics-Suchfunktionen wie FIND( ), MATCH( ) oder MAP( ) erhalten.
Falls Ihre Suchanforderungen die Fähigkeiten dieser einfacheren Funktionen überschreiten, erhalten Sie durch reguläre Ausdrücke eine fast unbegrenzte Flexibilität in der Erstellung von Suchbegriffen.
Wie REGEXFIND( ) Leerzeichen behandelt
Sowohl in Zeichenfolge als auch in Muster werden Leerzeichen als Zeichen behandelt. Sie sollten also sorgfältig mit Leerzeichen umgehen.
In Muster können Sie ein Leerzeichen entweder als Literalzeichen eingeben, indem Sie es tippen, oder indem Sie das Metazeichen \s verwenden. Durch das Metazeichen sind Leerzeichen in Muster einfacher lesbar und können weniger wahrscheinlich übersehen werden, insbesondere wenn Sie komplexere Muster erstellen.
Verketten von Feldern
Sie können zwei oder mehr Felder in Zeichenfolge verketten, wenn Sie mehrere Felder gleichzeitig durchsuchen möchten.
Beispiel:
REGEXFIND(Lieferantenname+Lieferantenstraße;"Hardware.*Haupt")
Durchsucht sowohl das Feld Lieferantenname als auch das Feld Lieferantenstraße nach den Wörtern „Hardware“ und „Haupt“, die durch null bis mehrere Zeichen getrennt sind.
Ein Unternehmen, dessen Firma den Begriff „Hardware“ enthält und das sich in einer Straße namens „Haupt“ befindet, entspricht dem regulären Ausdruck. Dasselbe gilt für ein Unternehmen namens „Hardware auf der Hauptstraße”.
Die verketteten Felder werden wie ein einzelnes Feld behandelt, das führende und nachgestellte Leerzeichen der einzelnen Felder enthält, solange Sie nicht die Funktion ALLTRIM( ) zur Entfernung von Leerzeichen verwenden.
Anordnung von verketteten Feldern ist wichtig
Weil REGEXFIND( ) nach Zeichen in Muster in der angegebenen Reihenfolge sucht, wirkt sich die Anordnung der Felder in der Verkettung auf die Ergebnisse aus. Falls Sie beispielsweise Lieferantenname und Lieferantenstraße im oben genannten Ausdruck umkehren, wäre es weniger wahrscheinlich, dass Sie Ergebnisse erhalten.
Metazeichen regulärer Ausdrücke
Die folgende Tabelle listet Metazeichen auf, die Sie mit REGEXFIND( ) und REGEXREPLACE( ) verwenden können, und beschreibt die jeweils durchgeführte Operation.
Es gibt zusätzliche Syntax für reguläre Ausdrücke, die durch Analytics unterstützt werden, aber komplexer sind. Eine vollständige Erläuterung der zusätzlichen Syntax würde den Rahmen dieses Handbuchs sprengen. Im Internet sind zahlreiche Ressourcen verfügbar, die reguläre Ausdrücke erläutern.
Analytics verwendet die ECMAScript-Implementierung von regulären Ausdrücken. Die meisten Implementierungen regulärer Ausdrücke verwenden eine gemeinsame Kernsyntax.
Hinweis
Durch die gegenwärtige Implementierung regulärer Ausdrücke in Analytics wird eine Durchsuchung anderer Sprachen als Englisch nicht vollständig unterstützt.
Metazeichen |
Beschreibung |
---|---|
. |
Entspricht jedem Zeichen (mit Ausnahme eines Zeilenumbruchs) |
? |
Entspricht 0 oder 1 Vorkommen des unmittelbar vorausgehenden Literals, Metazeichens oder Elements |
* |
Entspricht 0 oder mehr Vorkommen des unmittelbar vorausgehenden Literals, Metazeichens oder Elements |
+ |
Entspricht 1 oder mehr Vorkommen des unmittelbar vorausgehenden Literals, Metazeichens oder Elements |
{} |
Entspricht der angegebenen Anzahl von Vorkommen des unmittelbar vorausgehenden Literals, Metazeichens oder Elements. Sie können eine exakte Zahl, einen Bereich oder einen offenen Bereich festlegen. Beispiel:
|
[] |
Entspricht jedem einzelnen Zeichen innerhalb der Klammern Beispiel:
|
() |
Erstellt eine Gruppe, die eine Sequenz oder einen Zeichenblock definiert. Diese Gruppe kann dann als eine einzelne Einheit behandelt werden. Beispiel:
|
\ |
Ein Escapezeichen, das angibt, dass das unmittelbar folgende Zeichen ein Literal ist. Verwenden Sie ein Escapezeichen, wenn Sie ein Metazeichen als Literal verwenden möchten. \( findet beispielsweise eine linke Klammer und \\ einen umgekehrten Schrägstrich. Verwenden Sie ein Escapezeichen, wenn Sie nach einem der folgenden Zeichen suchen möchten: ^ $ . * + ? = ! : | \ ( ) [ ] { } Andere Satzzeichen wie das Kaufmanns-Und (&) oder das „at“-Zeichen (@) benötigen kein Escapezeichen. |
\int |
Gibt an, dass eine zuvor mit Klammern ( ) definierte Gruppe wiederholt auftritt. int ist eine ganze Zahl, welche die sequenzielle Position der zuvor definierten Gruppe im Verhältnis zu anderen Gruppen angibt. Dieses Metazeichen kann im Parameter Muster sowohl für REGEXFIND( ) als auch für REGEXREPLACE( ) verwendet werden. Beispiel:
|
$int |
Legt fest, dass eine Gruppe, die in der Zielzeichenfolge gefunden wurde, in der Ersetzungszeichenfolge verwendet wird. int ist eine ganze Zahl, welche die sequenzielle Position der Gruppe in der Zielzeichenfolge im Verhältnis zu anderen Gruppen angibt. Dieses Metazeichen kann im Parameter neue_Zeichenfolge für REGEXREPLACE( ) verwendet werden. Beispiel:
|
| |
Entspricht dem Zeichen, dem Zeichenblock oder dem Ausdruck vor oder nach dem senkrechten Strich (|) Beispiel:
|
\w |
Entspricht jedem Wortzeichen (a bis z, A bis Z, 0 bis 9 und dem Unterstrich _ ) |
\W |
Entspricht jedem Nichtwortzeichen (nicht a bis z, nicht A bis Z, nicht 0 bis 9 und kein Unterstrich _ ) |
\d |
Entspricht jeder Zahl (beliebige Dezimalziffer) |
\D |
Entspricht jedem Zeichen, das keine Dezimalziffer ist |
\s |
Entspricht einem Leerzeichen |
\S |
Entspricht allen Zeichen, die kein Leerzeichen sind |
\b |
Entspricht einer Wortgrenze (zwischen den Zeichen \w und \W) Wortgrenzen beanspruchen selbst keinen Platz. Beispiel:
Tipp Neben Leerzeichen können sich Wortgrenzen aus Kommas, Punkten und anderen Nichtwortzeichen ergeben. Folgender Ausdruck wird beispielsweise als Wahr ausgewertet: REGEXFIND("jsmith@example.net"; "\bexample\b") |
^ |
Entspricht dem Beginn einer Zeichenfolge In eckigen Klammern [ ] kehrt ^ die Inhalte um |
$ |
Entspricht dem Ende einer Zeichenfolge |
Verwandte Funktionen
Wenn Sie übereinstimmende Muster finden und ersetzen möchten, lesen Sie REGEXREPLACE( )-Funktion.