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