SubFieldRegEx() extraheert tekst uit een tekenreeksuitdrukking en gebruikt het opgegeven reguliere expressiepatroon als scheidingsteken. De functie retourneert een nulwaarde als er geen overeenkomsten worden gevonden.
Deze functie voert regexbewerkingen uit die hoofdlettergevoelig zijn. U kunt eventueel ook de variant SubFieldRegExI() gebruiken om hoofdletteronafhankelijke regexbewerkingen uit te voeren.
De tekst van de invoertekenreeks waarin u wilt zoeken naar een regulier expressiepatroon.
regex_delimiter
Tekrensreeksexpressie die de reguliere expressie bevat die als scheidingsteken wordt gebruikt. U kunt meer dan één scheidingsteken opgeven in hetzelfde reguliere expressiepatroon door ze te scheiden met een | (sluisteken) teken.
field_no
Geheel getal dat het nummer aangeeft van de onderverdeling die u wilt extraheren. Geef bijvoorbeeld de waarde 4 op om de vierde onderverdeling te extraheren. Dit is een optioneel argument.
Het volgende is van toepassing ongeacht of de functie wordt gebruikt in een load-script of diagramuitdrukking:
Als field_no positief is, zal de functie één waarde retourneren, die de overeenkomsten van links naar rechts identificeert.
Als field_no negatief is, zal de functie één waarde retourneren, die de overeenkomsten van rechts naar links identificeert.
Wanneer u de functie in een load-script gebruikt:
Als u de functie SubFieldRegEx() in een LOAD-instructie gebruikt en field_no is weggelaten, genereert de functie evenveel records als er overeenkomsten zijn.
Als meerdere velden worden geladen met SubFieldRegEx() en bij geen darvan een field_no argument is opgegeven, worden de cartesische producten van alle combinaties gemaakt.
Wanneer u de functie in een diagramuitdrukking gebruikt:
Als field_no is weggelaten, is de standaardwaarde 1.
Voorbeelden van functies
Voorbeeld
Resultaat
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Retourneert a. In dit voorbeeld worden drie scheidingstekens opgegeven (spatie, komma en puntkomma).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Retourneert b. In dit geval wordt slechts één scheidingsteken opgegeven (puntkomma).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Retourneert 1.
Wanneer gebruiken
U kunt SubFieldRegEx() gebruiken om meerdere afzonderlijke waarden uit een lijst te halen. Als u bijvoorbeeld een door komma's gescheiden lijst in een groter blok natuurlijke taal hebt, kunt u deze functie gebruiken om elke individuele waarde uit de lijst in een nieuwe record in uw gegevensmodel te isoleren.
Voorbeeld 1 - load-script om labels per transactie te scheiden
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een tabel Transaction_By_Tag, die in eerste instantie transactiegegevens bevat. Deze gegevens worden verwerkt om individuele labelwaarden in nieuwe records te extraheren.
Het aanmaken van een veld, TransactionTag, om de geëxtraheerde labelwaarden op te slaan.
In het veld met de transactielabels staan meerdere labels in teksttekenreeksen, gescheiden door scheidingstekens. Het scheidingsteken kan een van de volgende tekens zijn: , | ;
Load-script
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;
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
ID
Product
TransactionTag
Resultatentabel
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
Dit voorbeeld laat zien dat bij gebruik in een load-script, SubFieldRegEx() een aparte rij retourneert voor elke gevonden overeenkomst in de invoertekenreeks.
Voorbeeld 2 - diagramuitdrukkingen om labels per transactie te scheiden
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een tabel Transaction_By_Tag, die transactiegegevens bevat.
Een veld, Tags, dat teksttekenreeksen bevat om alle labels op te slaan die aan een transactie verbonden zijn.
Onze vereisten:
In het veld met de transactielabels staan meerdere labels in teksttekenreeksen, gescheiden door scheidingstekens. Het scheidingsteken kan een van de volgende tekens zijn: , | ;
We willen diagramuitdrukkingen gebruiken om elk label in zijn eigen veld te scheiden, waarbij maximaal drie labels aan een transactie kunnen worden toegevoegd.
Load-script
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');
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
ID
Tags
Voeg deze berekende dimensies toe:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Resultatentabel
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!