SubFieldRegEx() extrahiert Text aus einem Eingabestringausdruck unter Verwendung des Musters für den angegebenen regulären Ausdruck als Trennzeichen. Die Funktion gibt einen Nullwert zurück, wenn keine Übereinstimmungen gefunden werden.
Diese Funktion führt Regex-Vorgänge durch, bei denen die Groß- und Kleinschreibung beachtet wird. Sie können alternativ die Variante SubFieldRegExI() verwenden, um Regex-Vorgänge ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen.
Der Text des Eingabestrings, in dem Sie nach dem Muster eines regulären Ausdrucks suchen möchten.
regex_delimiter
Stringformel mit dem regulären Ausdruck, der als Trennzeichen verwendet werden soll. Sie können mehr als ein Trennzeichen in demselben Muster eines regulären Ausdrucks angeben, indem Sie sie mit einem | (vertikaler Strich) trennen.
field_no
Ganzzahliger Wert, der die Nummer der Unterteilung angibt, die Sie extrahieren möchten. Geben Sie zum Beispiel den Wert 4 an, um die vierte Unterteilung zu extrahieren. Dies ist ein optionales Argument.
Das Folgende gilt unabhängig davon, ob die Funktion in einem Ladeskript oder einer Diagrammformel verwendet wird:
Wenn field_no positiv ist, gibt die Funktion einen Wert zurück, wobei die Übereinstimmungen von links nach rechts identifiziert werden.
Wenn field_no negativ ist, gibt die Funktion einen Wert zurück, wobei die Übereinstimmungen von rechts nach links identifiziert werden.
Wenn Sie die Funktion in einem Ladeskript verwenden:
Wenn Sie die Funktion SubFieldRegEx() in einem LOAD-Befehl verwenden und field_no weglassen, generiert die Funktion so viele Datensätze, wie es Übereinstimmungen gibt.
Wenn mehrere Felder mit SubFieldRegEx() geladen werden und keines von ihnen ein Argument field_no angibt, werden die kartesischen Produkte aller Kombinationen erstellt.
Bei Verwendung der Funktion in einer Diagrammformel:
Wenn field_no weggelassen wird, lautet der Standardwert 1.
Funktionsbeispiele
Beispiel
Ergebnis
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Gibt a zurück. In diesem Beispiel werden drei Trennzeichen angegeben (Leerzeichen, Komma und Semikolon).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Gibt b zurück. In diesem Fall wird nur ein Trennzeichen angegeben (Semikolon).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Gibt 1 zurück.
Verwendung
Sie können SubFieldRegEx() verwenden, um mehrere einzelne Werte aus einer Liste mit Trennzeichen zu extrahieren. Wenn Sie beispielsweise eine kommagetrennte Liste in einem größeren Block mit natürlicher Sprache haben, können Sie diese Funktion verwenden, um jeden einzelnen Wert aus der Liste in einem neuen Datensatz in Ihrem Datenmodell zu isolieren.
Beispiel 1 – Ladeskript zum Trennen von Tags nach Transaktion
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle Transaction_By_Tag, die zunächst Transaktionsdaten enthält. Diese Daten werden verarbeitet, um einzelne Tag-Werte in neue Datensätze zu extrahieren.
Die Erstellung eines Felds TransactionTag, um die extrahierten Tag-Werte zu speichern.
In dem Feld, das die Transaktions-Tags enthält, sind mehrere Tags in Textstrings enthalten, die durch Trennzeichen getrennt sind. Das Trennzeichen kann jedes der folgenden Zeichen sein: , | ;
Ladeskript
Transaction_By_Tag:
Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID Product Tags Amount
1 Product A Special order,Eligible for return,Warranty included 100.93
2 Product B Ineligible for return|No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
drop fields Tags;
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
ID
Product
TransactionTag
Ergebnistabelle
ID
Product
TransactionTag
1
Product A
Eligible for return
1
Product A
Warranty included
1
Product A
Special order
2
Product B
No warranty available
2
Product B
Ineligible for return
3
Product C
No warranty available
4
Product B
Liquidation sale
4
Product B
Special order
4
Product B
Warranty included
Dieses Beispiel zeigt, dass SubFieldRegEx() bei Verwendung in einem Ladeskript für jede gefundene Übereinstimmung im Eingabestring eine eigene Zeile zurückgibt.
Beispiel 2 – Diagrammformeln zur Trennung von Tags nach Transaktionen
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Eine Tabelle Transaction_By_Tag, die Transaktionsdaten enthält.
Ein Feld Tags, das Textstrings enthält, um alle mit einer Transaktion verbundenen Tags zu speichern.
Unsere Anforderungen:
In dem Feld, das die Transaktions-Tags enthält, sind mehrere Tags in Textstrings enthalten, die durch Trennzeichen getrennt sind. Das Trennzeichen kann jedes der folgenden Zeichen sein: , | ;
Wir möchten Diagrammformeln verwenden, um für jedes Tag ein eigenes Feld zu verwenden, wobei bis zu drei Tags zu einer Transaktion hinzugefügt werden können.
Ladeskript
Transaction_By_Tag:
Load * Inline [
ID Product Tags Amount
1 Product A Special order, Eligible for return, Warranty included 100.93
2 Product B Ineligible for return | No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
ID
Tags
Fügen Sie die folgenden dynamischen Dimensionen hinzu:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Ergebnistabelle
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!