REGEXREPLACE( )-Funktion

Ersetzt alle Instanzen einer Zeichenfolge, die einem regulären Ausdruck entsprechen, durch eine neue Zeichenfolge.

Syntax

REGEXREPLACE(Zeichenfolge; Muster; neue_Zeichenfolge)

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.

neue_Zeichenfolge Zeichen

Die Zeichenfolge zur Ersetzung aller Werte, die Muster entsprechen.

Die Ersetzungszeichenfolge kann Literalzeichen, Zeichengruppen der ursprünglichen Zeichenfolge (unter Verwendung des Elements $int) oder eine Kombination beinhalten.

Ausgabe

Zeichen.

Beispiele

Einfache Beispiele

Mit Leerzeichen arbeiten

Gibt „AB CD EF“ zurück, indem ein oder mehrere Leerzeichen zwischen Textzeichen durch ein einzelnes Leerzeichen ersetzt werden:

REGEXREPLACE("AB CD   EF"; "\s+"; " ")

Gibt Zeichenfelddaten zurück, wobei die Leerzeichen zwischen Wörtern auf ein einzelnes Leerzeichen standardisiert wurden:

REGEXREPLACE(Zeichenfeld; "\s+"; " ")

Gibt Zeichenfelddaten zurück, wobei die Leerzeichen zwischen Wörtern auf ein einzelnes Leerzeichen standardisiert wurden. Wenn die Funktion BLANKS( ) in neue_Zeichenfolge statt einem literalen Leerzeichen verwendet wird, sind Leerzeichen einfacher lesbar und können in regulären Ausdrücken weniger wahrscheinlich übersehen werden:

REGEXREPLACE(Zeichenfeld; "\s+"; BLANKS(1))

Telefonnummern standardisieren

Gibt „(123) 456-7890“ zurück. Das Format der Telefonnummer „1234567890“ ist standardisiert:

REGEXREPLACE(SUBSTR("1234567890";1;14); "(\d{3})[\s-]*(\d{3})[\s-]*(\d{4})";"($1) $2-$3")

Gibt die Zahlen aus dem Feld Telefonnummer zurück, wobei die Formatierung standardisiert wurde.

REGEXREPLACE(Telefonnummer, ".*(\d{3})[\s-\.\)]*(\d{3})[\s-\.]*(\d{4})"; "($1) $2-$3")

Extrahiert „123-456-7890“ aus dem umgebenden Text:

REGEXREPLACE("Telefon: 123-456-7890 (Büro)"; "(.*)(\d{3}[\s-\)\.]*\d{3}[\s-\.]*\d{4})(.*)"; "$2")

Extrahiert Telefonnummern aus dem umgebenden Text innerhalb des Felds Kommentar und standardisiert ihre Formatierung:

REGEXREPLACE(Kommentar; "(.*)(\d{3})[\s-\)\.]*(\d{3})[\s-\.]*(\d{4})(.*)";"($2) $3-$4")

Generische Formate identifizieren

Gibt „9XXX-999xx“ zurück, was das generische Format des angegebenen Werts in der Zeichenfolge („1ABC-123aa“) ist:

REGEXREPLACE(REGEXREPLACE(REGEXREPLACE("1ABC-123aa";"\d";"9");"[a-z]";"x");"[A-Z]"; "X")

Gibt das generische Format aller Bezeichner innerhalb des Felds Rechnungsnummer zurück:

REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(Rechnungsnummer;"\d";"9");"[a-z]";"x");"[A-Z]"; "X")

Namensformat standardisieren

Gibt „John David Smith“ zurück:

REGEXREPLACE("Smith, John David“; "^(\w+),(\s\w+)(\s\w+)?(\s\w+)?“;"$2$3$4 $1")

Gibt die Namen im Feld Vollständiger_Name in ihrer normalen Reihenfolge zurück: Vorname (mittlerer Name) (mittlerer Name) Nachname:

REGEXREPLACE(Gesamter_Name; "^(\w+),(\s\w+)(\s\w+)?(\s\w+)?";"$2$3$4 $1")

Hinweis

Namensdaten können unterschiedliche Komplikationen aufweisen, wie beispielsweise Apostrophen in den Namen. Um Variationen in Namensdaten zu berücksichtigen, sind in der Regel komplexere reguläre Ausdrücke als das oben genannte Beispiel notwendig.

HTML-Markup entfernen

Gibt „https://www.flgov.com/wp-content/uploads/orders/2020/EO_20-166.pdf“ zurück:

REGEXREPLACE("<a href='https://www.flgov.com/wp-content/uploads/orders/2020/EO_20-166.pdf' target='blank'>https://www.flgov.com/wp-content/uploads/orders/2020/EO_20-166.pdf</a>"; "<[^>]*>";' ')

Gibt die Links im Feld URL_Quelllink ohne HTML-Markup zurück:

REGEXREPLACE(URL_Quelllink; "<[^>]*>";' ')

Bemerkungen

Funktionsweise

Die Funktion REGEXREPLACE( ) verwendet einen regulären Ausdruck, um entsprechende Muster in Daten zu finden. Es ersetzt die übereinstimmenden Werte durch eine neue Zeichenfolge.

Beispiel:

REGEXREPLACE(Zeichenfeld; "\s+"; " ")

Standardisiert Leerzeichen in Zeichendaten, indem ein oder mehrere Leerzeichen zwischen Textzeichen durch ein einzelnes Leerzeichen ersetzt werden.

Der Suchbestandteil von REGEXREPLACE( ) entspricht der Funktion REGEXFIND( ). Detaillierte Informationen über die gemeinsame Suchfunktionalität der beiden Funktionen finden Sie unter REGEXFIND( )-Funktion.

Wann Sie REGEXREPLACE ) verwenden sollen

Verwenden Sie REGEXREPLACE( ), wenn Sie Daten in Analytics mit einfachen oder komplexen Mustervergleichen finden und ersetzen möchten.

Zeichen durch sie selbst ersetzen

Sie können das Element $int verwenden, um Zeichen durch sich selbst zu ersetzen. Dadurch ist es möglich, bedeutungsvolle Teile der Daten zu erhalten, während umgebende oder dazwischen befindliche Daten standardisiert oder ausgelassen werden.

Einige Beispiele mit Telefonnummern und Namen finden Sie oben.

Um das Element $int zu verwenden, müssen Sie zuerst mit Klammern ( ) im Wert Muster Gruppen erstellen. Weitere Informationen finden Sie unter REGEXFIND( )-Funktion.

Sequenziellen Zeichenabgleich vermeiden

Sie können aufeinanderfolgende Übereinstimmungen vermeiden und Teilzeichenfolgen unabhängig von ihrer gegenseitigen Position ersetzen, indem Sie REGEXREPLACE( )-Funktionen verschachteln.

Das Problem in den beiden obigen Beispielen besteht darin, aus alphanumerischen Quelldaten ein generisches Format zu erhalten, in dem Zahlen und Buchstaben in beliebiger Reihenfolge erscheinen können. Wie können Sie die Zeichenfolge in Muster erstellen, ohne die Anordnung von Zahlen und Buchstaben zu kennen?

Die Lösung ist, zuerst Zahlen mit der inneren REGEXREPLACE( )-Funktion zu finden und zu ersetzen, und dann Buchstaben mit der äußeren REGEXREPLACE( )-Funktion zu finden und zu ersetzen.

Gibt „999XXX“ zurück:

REGEXREPLACE(REGEXREPLACE("123ABC";"\d";"9");"[A-Z]";"X“)

Gibt „9X9X9X“ zurück:

REGEXREPLACE(REGEXREPLACE("1A2B3C";"\d";"9");"[A-Z]";"X")

Länge und Kürzung der Ersetzungszeichenfolge

Wenn Sie REGEXREPLACE( ) zur Erstellung eines Kalkulationsfelds verwenden, entspricht die Länge des Kalkulationsfelds der Länge des ursprünglichen Felds.

Falls die Länge der Ersetzungszeichenfolge die Länge der Zielzeichenfolge überschreitet, wird die Gesamtzeichenfolge länger. Dies führt dazu, dass das Ergebnis abgeschnitten wird, falls die Länge des Kalkulationsfelds die größere Zeichenfolgenlänge nicht aufnehmen kann.

Zeichen am Ende der Zielzeichenfolge werden zuerst abgeschnitten. Darauf folgen nachgestellte Zeichen der Ersetzungszeichenfolge. Die folgenden Beispiele veranschaulichen das Abschneiden:

Zeichenfolge

Muster

neue_Zeichenfolge

Feldlänge

Ergebnis

Abgeschnittene Zeichen

x123x

123

A

5

„xAx“

keine

x123x

123

ABC

5

„xABCx“

keine

x123x

123

ABCD

5

„xABCD“

"x"

x123x

123

ABCDE

5

„xABCD“

„x“, „E“

x123x

123

ABCDE

6

„xABCDE“

"x"

x123x

123

ABCDE

7

„xABCDEx“

keine

Wie man ein Abschneiden vermeiden kann

Um ein Abschneiden zu verhindern, verwenden Sie wie im zweiten folgenden Beispiel die SUBSTR( )-Funktion, um die Feldlänge zu erhöhen.

Gibt „xABCD“ zurück, wodurch das Ersetzungszeichen „E“ und das bestehende Zeichen „x“ abgeschnitten werden:

REGEXREPLACE("x123x";"123";"ABCDE")

Gibt „xABCDEx“ zurück, was alle Ersetzungszeichen und nicht ersetzte bestehende Zeichen beinhaltet:

REGEXREPLACE(SUBSTR("x123x";1;10);"123";"ABCDE")

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 möchten, ohne sie zu ersetzen, lesen Sie REGEXFIND( )-Funktion.