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:

  • a{3} entspricht „aaa“

  • X{0,2}L entspricht „L“, „XL“ und „XXL“

  • AB-\d{2,}-YZ entspricht jedem alphanumerischen Bezeichner mit dem Präfix „AB-“, dem Suffix „-YZ“ und zwei oder mehr Zahlen innerhalb des Textkörpers des Bezeichners

[]

Entspricht jedem einzelnen Zeichen innerhalb der Klammern

Beispiel:

  • [aeiou] entspricht a oder e oder i oder o oder u

  • [^aeiou] entspricht jedem Zeichen außer a, e, i, o oder u

  • [A-G] entspricht jedem Großbuchstaben von A bis G

  • [A-Ga-g] entspricht jedem Großbuchstaben von A bis G und jedem Kleinbuchstaben von a bis g

  • [5-9] entspricht jeder Zahl von 5 bis 9

()

Erstellt eine Gruppe, die eine Sequenz oder einen Zeichenblock definiert. Diese Gruppe kann dann als eine einzelne Einheit behandelt werden.

Beispiel:

  • S(ch)?mid?th? entspricht „Smith“ oder „Schmidt“

  • (56A.*){2} entspricht jedem alphanumerischen Bezeichner, in dem die Sequenz „56A“ mindestens zweimal auftritt

  • (56A).*-.*\1 entspricht jedem alphanumerischen Bezeichner, in dem die Sequenz „56A“ mindestens zweimal auftritt und in dem sich zwischen den beiden Vorkommen ein Bindestrich befindet

\

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:

  • (123).*\1 entspricht jedem Bezeichner, in dem die Zifferngruppe „123“ mindestens zweimal vorkommt

  • ^(\d{3}).*\1 entspricht jedem Bezeichner, in dem die ersten drei Ziffern wiederholt auftreten

  • ^(\d{3}).*\1.*\1 entspricht jedem Bezeichner, in dem die ersten drei Ziffern mindestens zweimal auftreten

  • ^(\D)(\d)-.*\2\1 entspricht jedem Bezeichner, in dem das alphanumerische Präfix wiederholt auftritt und die Buchstaben sowie Ziffern umgekehrt sind

$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:

  • Wenn das Muster (\d{3})[ -]?(\d{3})[ -]?(\d{4}) verwendet wird, um unterschiedlichen Telefonnummernformaten zu entsprechen, kann für neue_Zeichenfolge ($1)-$2-$3 verwendet werden, um die Zahlen durch sich selbst zu ersetzen und die Formatierung zu vereinheitlichen. 999 123-4567 und 9991234567 werden dadurch zu (999)-123-4567.

|

Entspricht dem Zeichen, dem Zeichenblock oder dem Ausdruck vor oder nach dem senkrechten Strich (|)

Beispiel:

  • a|b entspricht a oder b

  • abc|def entspricht „abc“ oder „def“

  • Sm(i|y)th entspricht Smith oder Smyth

  • [a-c]|[Q-S]|[x-z] entspricht jedem der folgenden Buchstaben: a, b, c, Q, R, S, x, y, z

  • \s|- entspricht einem Leerzeichen oder einem Bindestrich

\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:

  • „United Equipment“ beinhaltet vier Wortgrenzen: auf jeder Seite des Leerzeichens, eines am Beginn und eines am Ende der Zeichenfolge. „United Equipment“ entspricht dem regulären Ausdruck \b\w*\b\W\b\w*\b

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.