SubFieldRegEx() wyodrębnia tekst z wejściowego wyrażenia ciągu przy użyciu określonego wzorca wyrażenia regularnego jako ogranicznika. Funkcja zwraca wartość null, jeśli nie znaleziono żadnych dopasowań.
Funkcja ta wykonuje operacje z wyrażeniami regularnymi, w których rozróżniana jest wielkość liter. Zamiast tego można użyć wariantu SubFieldRegExI(), aby wykonywać operacje z wyrażeniami regularnymi bez rozróżniania wielkości liter.
Tekst ciągu wejściowego, w którym ma być wyszukiwany wzorzec wyrażenia regularnego.
regex_delimiter
Wyrażenie ciągu zawierające wyrażenie regularne ogranicznika. W tym samym wzorcu wyrażenia regularnego można określić więcej ograniczników, oddzielając je znakiem | (pionowa kreska).
field_no
Liczba całkowita wskazująca numer części do wyodrębnienia. Na przykład określ wartość 4, aby wyodrębnić czwartą część. Ten argument jest opcjonalny.
Poniższe informacje mają zastosowanie niezależnie od tego, czy funkcja jest używana w skrypcie ładowania czy wyrażeniu wykresu:
Jeśli wartość field_no jest dodatnia, funkcja zwróci jedną wartość, identyfikując dopasowania od lewej do prawej.
Jeśli wartość field_no jest ujemna, funkcja zwróci jedną wartość, identyfikując dopasowania od lewej do prawej.
W przypadku użycia funkcji w skrypcie ładowania:
W przypadku użycia funkcji SubFieldRegEx() w instrukcji LOAD i pominięcia field_no funkcja generuje tyle rekordów, ile jest dopasowań.
Jeśli przy użyciu funkcji SubFieldRegEx() załadowano kilka pól i nie określono argumentu field_no, wówczas zostanie wygenerowany iloczyn kartezjański wszystkich kombinacji.
Podczas używania funkcji w wyrażeniu wykresu:
W przypadku pominięcia field_no wartością domyślną jest 1.
Przykłady funkcji
Przykład
Wynik
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Zwraca wartość a. W tym przykładzie określono trzy znaki ograniczające (spacja, przecinek i średnik).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Zwraca wartość b. W tym przypadku jest określony tylko jeden znak ograniczający (średnik).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Zwraca wartość 1.
Kiedy używać
Możesz użyć SubFieldRegEx(), aby wyodrębnić wiele pojedynczych wartości z ograniczonej listy. Na przykład, jeśli masz listę oddzieloną przecinkami zawartą w większym bloku języka naturalnego, możesz użyć tej funkcji, aby wyodrębnić każdą pojedynczą wartość z listy do nowego rekordu w modelu danych.
Przykład 1 — skrypt ładowania do oddzielania znaczników według transakcji
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela Transaction_By_Tag, która początkowo zawiera dane transakcji. Dane te są przetwarzane w celu wyodrębnienia poszczególnych wartości znaczników do nowych rekordów.
Utworzenie pola TransactionTag do przechowywania wyodrębnionych wartości znaczników.
W polu zawierającym znaczniki transakcji wiele znaczników jest zawartych w ciągach tekstowych, oddzielonych ogranicznikami. Ogranicznikiem może być dowolny z następujących znaków: , | ;
Skrypt ładowania
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;
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
ID
Product
TransactionTag
Tabela wynikowa
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
Ten przykład pokazuje, że gdy funkcja SubFieldRegEx() jest używana w skrypcie ładowania, zwraca oddzielny wiersz dla każdego dopasowania znalezionego w ciągu wejściowym.
Przykład 2 — wyrażenia wykresu do oddzielania znaczników według transakcji
Przegląd
Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.
Skrypt ładowania zawiera:
Tabela Transaction_By_Tag zawierająca dane transakcji.
Pole Tags, które zawiera ciągi tekstowe do przechowywania wszystkich znaczników powiązanych z transakcją.
Nasze wymagania:
W polu zawierającym znaczniki transakcji wiele znaczników jest zawartych w ciągach tekstowych, oddzielonych ogranicznikami. Ogranicznikiem może być dowolny z następujących znaków: , | ;
Chcemy użyć wyrażenia wykresu, aby oddzielić każdy znacznik do jego własnego pola, z maksymalnie trzema znacznikami, które można dodać do transakcji.
Skrypt ładowania
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');
Wyniki
Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:
ID
Tags
Dodaj następujące wymiary wyliczane:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Tabela wynikowa
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included