# ExtractRegEx Script- en diagramfunctie

ExtractRegEx() extraheert tekst uit een tekenreeksuitdrukking met behulp van het opgegeven reguliere expressiepatroon. 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 ExtractRegExI() gebruiken om hoofdletteronafhankelijke regexbewerkingen uit te voeren.

Syntaxis:

ExtractRegEx (text, regex [, field\_no])

Retourgegevenstypen: tekenreeks

Argumenten

| Argument | Beschrijving |
| --- | --- |
| text | Tekenreeksuitdrukking die de tekst bevat die in de retourwaarde moet worden geëxtraheerd. |
| regex | De reguliere expressie om te gebruiken voor het extraheren van tekst. |
| field\_no | Het nummer van de overeenkomst die moet worden uitgepakt. Dit is handig als er meerdere overeenkomsten voor de reguliere expressie in de tekst kunnen worden gevonden. Geef bijvoorbeeld de waarde `4` op om de vierde overeenkomst te extraheren. Dit is een optioneel argument. Geef een negatieve waarde op om de volgorde van de overeenkomsten om te keren.<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>ExtractRegEx()</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>ExtractRegEx()</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 |
| --- | --- |
| `ExtractRegEx('a,b c;1 2,3','[a-z]\|[0-9]', 1)` | Retourneert `a` wat de eerste gevonden overeenkomst is. |
| `ExtractRegEx('a,b c;1 2,3','[a-z]\|[0-9]', 2)` | Retourneert `b` wat de tweede gevonden overeenkomst is. |
| `ExtractRegEx('a,b c;1 2,3','[a-z]\|[0-9]', 4)` | Retourneert `1` wat de vierde gevonden overeenkomst is. |
| `ExtractRegEx('abc','a\|b',-1)` | Retourneert `b`. Als er een negatieve waarde wordt opgegeven, worden de overeenkomsten in omgekeerde volgorde geteld. |
| `ExtractRegEx('A,B C;1 2,3','[a-c]\|[4-9]')` | Retourneert een nulwaarde, omdat ExtractRegEx() hoofdlettergevoelig is, en de hoofdletterongevoelige variant niet is gebruikt. |
| `ExtractRegExI('A,B C;1 2,3','[a-c]\|[4-9]')` | Retourneert `A`, omdat de hoofdletterongevoelige variant ExtractRegExI() is gebruikt. |

## Wanneer gebruiken

U kunt Extract RegEx() gebruiken om informatie te extraheren die u wilt isoleren uit gegevens die mogelijk ook andere informatie bevatten (bijvoorbeeld vrije tekst of JSON-tekenreeksen). Bijvoorbeeld:

* Extraheer e-mailadressen, telefoonnummers, rekeningnummers en andere informatie uit tekst.

* Extraheer numerieke waarden uit tekst (bijvoorbeeld valuta).

* Standaardiseer de opmaak van tekst of numerieke gegevens.

## Voorbeeld 1 - load-script om e-mailadressen uit JSON te extraheren

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/ExtractRegEx.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 `OrderDetails` met een veld `OrderJson`.

* Het veld `OrderJson` bevat een JSON-tekenreeks met bestelgegevens. Opmaak, zoals inspringen en regeleinden, is verwijderd uit de JSON. De bestelgegevens bevatten e-mailadressen die we in afzonderlijke waarden willen uitpakken.

* Een nieuwe tabel `EmailAddresses`, die wordt geladen na `OrderDetails`. In de `EmailAddresses` LOAD‑instructie laden we het veld `OrderJson` uit de tabel `OrderDetails` en maken we een nieuw berekend veld, `Email`, dat de geëxtraheerde e-mailadressen bevat. `OrderDetails` wordt dan verwijderd.

Onze vereisten:

* E-mailadressen in een specifiek domein: `example.com`.

* E-mailadressen die een willekeurig aantal alfanumerieke tekens en een gedefinieerde reeks speciale tekens bevatten.

Load-script

```
OrderDetails:

Load * Inline `
OrderJson
{"Orders":[{"order_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1200},"total_price":2400},{"order_id":"12346","customer":{"name":"Jane Doe","email":"jane.doe@example.com"},"items":{"product":"Tablet","quantity":4,"price":400},"total_price":1600},{"order_id":"12347","customer":{"name":"Amalia Craig","email":"amalia.craig@example.com"},"items":{"product":"Desktop Computer","quantity":1,"price":1900},"total_price":1900},{"order_id":"12348","customer":{"name":"Ken Roberts","email":"ken.roberts@example.com"},"items":{"product":"Phone Charger Cable","quantity":110,"price":1900},"total_price":1210}]}
` (delimiter is '\t');

EmailAddresses:

Load OrderJson, ExtractRegEx(OrderJson, '[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@example.com') as Email Resident OrderDetails;

Drop table OrderDetails;
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `Email`

Resultatentabel

| Email |
| --- |
| amalia.craig@example.com |
| jane.doe@example.com |
| john.doe@example.com |
| ken.roberts@example.com |

Door geen argumentwaarde op te geven voor field\_no, worden alle overeenkomsten automatisch in afzonderlijke waarden geëxtraheerd.

## Voorbeeld 2 - load-script om numerieke waarden uit valutabedragen te extraheren

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/ExtractRegEx.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 `Sales` met verkoopgegevens.

* In de tabel `Sales` staat een veld met de naam `Amount`, dat transactiebedragen in USD bevat. Deze bedragen worden uitgedrukt als tekenreeksen, die valutasymbolen en codes bevatten.

* De definitie van een aangepast veld binnen `Sales`, `OrderAmountNumeric_USD`, dat elk bedrag in een zuiver numerieke waarde extraheert. Deze gegevens moeten in numerieke vorm zijn, zodat we ze in diagrammen kunnen gebruiken.

Load-script

```
SET DateFormat='MM-DD-YYYY';

Sales:

Load ExtractRegEx(Amount, '[0-9]+.[0-9]{2}') as OrderAmountNumeric_USD, * Inline `

OrderID, OrderDate, Product, Amount
1, '12-27-2024', Software, $100.31 USD
2, '12-28-2024', Electronics, $513.93 USD
3, '12-29-2024', Grocery, $34.66 USD
4, '12-30-2024', Furniture, $1124.58 USD
5, '12-31-2024', Software, $95.95 USD
6, '01-01-2025', Software, $601.00 USD
7, '01-02-2025', Grocery, $1534.20 USD
8, '01-03-2025', Produce, $51.49 USD
9, '01-04-2025', Home Improvement, $176.12 USD
10, '01-05-2025', Produce, $432.77 USD
11, '01-06-2025', Software, $270.01 USD
12, '01-07-2025', Electronics, $83.85 USD
13, '01-08-2025', Furniture, $65.65 USD
14, '01-09-2025', Electronics, $1526.39 USD
15, '01-10-2025', Software, $432.44 USD
16, '01-11-2025', Furniture, $888.15 USD
17, '01-12-2025', Furniture, $300.00 USD
18, '01-13-2025', Grocery, $109.53 USD
19, '01-14-2025', Furniture, $487.97 USD
20, '01-15-2025', Software, $65.09 USD
`;
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `OrderID`

* `Amount`

* `OrderAmountNumeric_USD`

Resultatentabel

| OrderID | Amount | OrderAmountNumeric\_USD |
| --- | --- | --- |
| 1 | $100.31 USD | 100.31 |
| 2 | $513.93 USD | 513.93 |
| 3 | $34.66 USD | 34.66 |
| 4 | $1124.58 USD | 1124.58 |
| 5 | $95.95 USD | 95.95 |
| 6 | $601.00 USD | 601.00 |
| 7 | $1534.20 USD | 1534.20 |
| 8 | $51.49 USD | 51.49 |
| 9 | $176.12 USD | 176.12 |
| 10 | $432.77 USD | 432.77 |
| 11 | $270.01 USD | 270.01 |
| 12 | $83.85 USD | 83.85 |
| 13 | $65.65 USD | 65.65 |
| 14 | $1526.39 USD | 1526.39 |
| 15 | $432.44 USD | 432.44 |
| 16 | $888.15 USD | 888.15 |
| 17 | $300.00 USD | 300.00 |
| 18 | $109.53 USD | 109.53 |
| 19 | $487.97 USD | 487.97 |
| 20 | $65.09 USD | 65.09 |

## Voorbeeld 3 - diagramuitdrukkingen om e-mailadressen uit JSON te extraheren

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

#### Diagramuitdrukkingen 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 `OrderDetails` met een veld `OrderJson`.

* Het veld `OrderJson` bevat een JSON-tekenreeks met bestelgegevens. Opmaak, zoals inspringen en regeleinden, is verwijderd uit de JSON. De bestelgegevens bevatten e-mailadressen die we in afzonderlijke waarden willen uitpakken.

Onze vereisten:

* E-mailadressen in een specifiek domein: `example.com`.

* E-mailadressen die een willekeurig aantal alfanumerieke tekens en een gedefinieerde reeks speciale tekens bevatten.

Load-script

```
OrderDetails:

Load * Inline `
OrderJson
{"Orders":[{"order_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1200},"total_price":2400},{"order_id":"12346","customer":{"name":"Jane Doe","email":"jane.doe@example.com"},"items":{"product":"Tablet","quantity":4,"price":400},"total_price":1600},{"order_id":"12347","customer":{"name":"Amalia Craig","email":"amalia.craig@example.com"},"items":{"product":"Desktop Computer","quantity":1,"price":1900},"total_price":1900},{"order_id":"12348","customer":{"name":"Ken Roberts","email":"ken.roberts@example.com"},"items":{"product":"Phone Charger Cable","quantity":110,"price":1900},"total_price":1210}]}
` (delimiter is '\t');
```

Resultaten

Laad de gegevens en open een werkblad. Maak een tabel en voeg de volgende uitdrukkingen toe als berekende dimensies:

* `=ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@example.com',1)`

* `=ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@example.com',2)`

* `=ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@example.com',3)`

* `=ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@example.com',4)`

Resultatentabel

| =ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&\*-\_+=~{\|}\/.'']+@example.com',1) | =ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&\*-\_+=~{\|}\/.'']+@example.com',2) | =ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&\*-\_+=~{\|}\/.'']+@example.com',3) | =ExtractRegEx(OrderJson,'[a-zA-Z0-9!#$%^&\*-\_+=~{\|}\/.'']+@example.com',4) |
| --- | --- | --- | --- |
| john.doe@example.com | jane.doe@example.com | amalia.craig@example.com | ken.roberts@example.com |

## Meer informatie

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