SubFieldRegEx() extraherar text från ett indatastränguttryck med hjälp av det angivna reguljära uttrycksmönstret som en avgränsare. Funktionen returnerar ett nullvärde om inga matchningar hittas.
Den här funktionen utför regexoperationer som är skiftlägeskänsliga. Alternativt kan du använda varianten SubFieldRegExI() för att utföra skiftlägesokänsliga regexoperationer.
Indatasträngens text inom vilken du vill söka efter ett reguljärt uttrycksmönster.
regex_delimiter
Stränguttryck som innehåller det reguljära uttryck som ska användas som avgränsare. Du kan ange mer än en avgränsare i samma reguljära uttrycksmönster genom att separera dem med ett |-tecken (lodstreck).
field_no
Heltalsvärde som anger numret på den underavdelning som du vill extrahera. Ange t.ex. värdet 4 för att få fram den fjärde underavdelningen. Det här är ett valfritt argument.
Följande gäller oavsett om funktionen används i ett laddningsskript eller ett diagramuttryck:
Om field_no är positivt kommer funktionen att returnera ett värde som identifierar matchningar från vänster till höger.
Om field_no är negativt kommer funktionen att returnera ett värde som identifierar matchningar från höger till vänster.
När du använder funktionen i ett laddningsskript:
Om du använder funktionen SubFieldRegEx() i en LOAD-sats och field_no utelämnas, genererar funktionen lika många poster som det finns matchningar.
Om flera fält laddas med hjälp av SubFieldRegEx() och inget av dem specificerar ett field_no-argument skapas de kartesiska produkterna för alla kombinationer.
När funktionen används i ett diagram-uttryck:
Om field_no utelämnas är standardvärdet 1.
Exempel på funktioner
Exempel
Resultat
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Returnerar a. I det här exemplet anges tre avgränsningstecken (blanksteg, komma och semikolon).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Returnerar b. I det här fallet anges endast ett avgränsningstecken (semikolon).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Returnerar 1.
Användning
Du kan använda SubFieldRegEx() för att extrahera flera enskilda värden från en avgränsad lista. Om du t.ex. har en kommaseparerad lista som behållare i ett större block med naturligt språk kan du använda den här funktionen för att isolera varje enskilt värde från listan till en ny post i datamodellen.
Exempel 1 – laddningsskript för att separera taggar med transaktioner
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En tabell Transaction_By_Tag, som inledningsvis innehåller transaktionsdata. Dessa data bearbetas för att extrahera enskilda taggvärden till nya poster.
Skapandet av ett fält, TransactionTag, för att lagra de extraherade taggvärdena.
I fältet som innehåller transaktionstaggarna finns flera taggar i textsträngar, åtskilda av avgränsningstecken. Avgränsaren kan vara något av följande tecken: , | ;
Laddningsskript
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;
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
ID
Product
TransactionTag
Resultattabell
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
Detta exempel visar att SubFieldRegEx(), när det används i ett laddningsskript, returnerar en separat rad för varje matchning som hittas i indatasträngen.
Exempel 2 – diagramuttryck för att separera taggar efter transaktion
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En tabell Transaction_By_Tag, som innehåller transaktionsdata.
Ett fält, Tags, som innehåller textsträngar för att lagra alla taggar som är associerade med en transaktion.
Våra krav:
I fältet som innehåller transaktionstaggarna finns flera taggar i textsträngar, åtskilda av avgränsningstecken. Avgränsaren kan vara något av följande tecken: , | ;
Vi vill använda diagramuttryck för att separera varje tagg i sitt eget fält, med upp till tre taggar möjliga att lägga till i en transaktion.
Laddningsskript
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');
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
ID
Tags
Lägg till dess beräknade dimensioner:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Resultattabell
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!