# SubFieldRegEx - script- en diagramfunctie

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.

Syntaxis:

SubFieldRegEx (text, regex\_delimiter [, field\_no])

Retourgegevenstypen: tekenreeks

Argumenten

| Argument | Beschrijving |
| --- | --- |
| text | 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.<br><br>Het volgende is van toepassing ongeacht of de functie wordt gebruikt in een load-script of diagramuitdrukking:<br><br><ul> <li> <p>Als <span>field_no</span> positief is, zal de functie één waarde retourneren, die de overeenkomsten van links naar rechts identificeert.</p> </li> <li> <p>Als <span>field_no</span> negatief is, zal de functie één waarde retourneren, die de overeenkomsten van rechts naar links identificeert.</p> </li> </ul><br><br>Wanneer u de functie in een load-script gebruikt:<br><br><ul> <li> <p>Als u de functie <span>SubFieldRegEx()</span> in een <span>LOAD</span>-instructie gebruikt en <span>field_no</span> is weggelaten, genereert de functie evenveel records als er overeenkomsten zijn.</p> </li> <li> <p>Als meerdere velden worden geladen met <span>SubFieldRegEx()</span> en bij geen darvan een <span>field_no</span> argument is opgegeven, worden de cartesische producten van alle combinaties gemaakt.</p> </li> </ul><br><br>Wanneer u de functie in een diagramuitdrukking gebruikt:<br><br><ul> <li> <p>Als <span>field_no</span> is weggelaten, is de standaardwaarde <code>1</code>.</p> </li> </ul> |

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/SubFieldRegEx.htm)

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/SubFieldRegEx.htm)

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

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 | Special order | Eligible for return | Warranty included |
| 2 | Ineligible for return \| No warranty available | Ineligible for return | No warranty available | - |
| 3 | No warranty available | No warranty available | - | - |
| 4 | Special order;Liquidation sale;Warranty included | Special order | Liquidation sales | Warranty included |

## Meer informatie

* [Werken met reguliere expressies in load-scripts en diagramuitdrukkingen](https://help.qlik.com/nl-NL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)