# SubFieldRegEx – Skript- och diagramfunktion

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.

Syntax:

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

Returnerad datatyp: sträng

Argument

| Argument | Beskrivning |
| --- | --- |
| text | 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.<br><br>Följande gäller oavsett om funktionen används i ett laddningsskript eller ett diagramuttryck:<br><br><ul> <li> <p>Om <span>field_no</span> är positivt kommer funktionen att returnera ett värde som identifierar matchningar från vänster till höger.</p> </li> <li> <p>Om <span>field_no</span> är negativt kommer funktionen att returnera ett värde som identifierar matchningar från höger till vänster.</p> </li> </ul><br><br>När du använder funktionen i ett laddningsskript:<br><br><ul> <li> <p>Om du använder funktionen <span>SubFieldRegEx()</span> i en <span>LOAD</span>-sats och <span>field_no</span> utelämnas, genererar funktionen lika många poster som det finns matchningar.</p> </li> <li> <p>Om flera fält laddas med hjälp av <span>SubFieldRegEx()</span> och inget av dem specificerar ett <span>field_no</span>-argument skapas de kartesiska produkterna för alla kombinationer.</p> </li> </ul><br><br>När funktionen används i ett diagram-uttryck:<br><br><ul> <li> <p>Om <span>field_no</span> utelämnas är standardvärdet <code>1</code>.</p> </li> </ul> |

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

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

#### Laddningsskript och resultat

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

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

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

#### Laddningsskript och resultat

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

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 | 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 |

## Mer information

* [Arbeta med reguljära uttryck i laddningsskript och diagramuttryck](https://help.qlik.com/sv-SE/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)