# ReplaceRegEx - Script- en diagramfunctie

ReplaceRegEx() retourneert een tekenreeks na het vervangen van één of meer overeenkomsten tussen een invoertekenreeks en een gespecificeerd regulier expressiepatroon. De tekst die de overeenkomende tekst vervangt, wordt opgegeven in het argument to\_str. De functie wordt van links naar rechts uitgevoerd, maar als u een negatieve occurrence waarde opgeeft, leest de functie van rechts naar links.

Deze functie voert regexbewerkingen uit die hoofdlettergevoelig zijn. U kunt eventueel ook de variant ReplaceRegExI() gebruiken om hoofdletteronafhankelijke regexbewerkingen uit te voeren.

[ReplaceRegEx - Script syntax and chart functions](https://play.vidyard.com/1STBZFJeqoouP4SSofdb5R)

Syntaxis:

ReplaceRegEx (text, regex, to\_str [, occurrence])

Retourgegevenstypen: tekenreeks

Argumenten

| Argument | Beschrijving |
| --- | --- |
| text | De tekst van de invoertekenreeks die u geheel of gedeeltelijk wilt vervangen door de nieuwe tekst van to\_str. |
| regex | De reguliere expressie die bepaalt wanneer tekst moet worden vervangen. Overeenkomsten tussen dit argument en het argument text worden vervangen. |
| to\_str | De nieuwe tekst die u wilt gebruiken om bestaande inhoud van text te vervangen. |
| occurrence | Het nummer van de overeenkomst (tussen invoertekst en reguliere expressie) om te vervangen door nieuwe tekst.<br><br>Dit is een optioneel argument. De standaardwaarde is 0 als deze wordt weggelaten. Als een waarde van 0 wordt gebruikt, of als het argument wordt weggelaten, worden alle overeenkomsten tussen text en regex vervangen door to\_str.<br><br>U kunt een negatieve waarde opgeven voor occurrence om overeenkomsten van rechts naar links te identificeren. |

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `ReplaceRegEx('abc123','[0-9]','x')` | Retourneert `abcxxx`. In dit voorbeeld wordt alle tekst uit de invoertekenreeks die overeenkomt met het regexpatroon vervangen door de nieuwe tekst. |
| `ReplaceRegEx('abc123','[0-9]','x',1)` | Retourneert `abcx23`. Alleen de eerste overeenkomsten tussen de invoertekenreeks en het regexpatroon worden vervangen. |
| `ReplaceRegEx('abc123','[0-9]','x',4)` | Retourneert `abc123`. Er zijn slechts drie mogelijke overeenkomsten tussen de invoertekenreeks en het regexpatroon, dus er wordt geen wijziging uitgevoerd. |
| `ReplaceRegEx('ABC123','[a-c]','5')` | Retourneert `ABC123`. Er wordt geen wijziging uitgevoerd omdat ReplaceRegEx() hoofdlettergevoelig is, en de hoofdletterongevoelige variant niet wordt gebruikt. |
| `ReplaceRegExI('ABC123','[a-c]','5')` | Retourneert `555123`. De hoofdletterongevoelige variant van de functie, ReplaceRegExI(), wordt gebruikt. |

## Wanneer gebruiken

U kunt ReplaceRegEx() gebruiken voor het wijzigen van tekst om te voldoen aan opmaak- en nalevingsnormen, vooral wanneer er complexe patronen in de gegevens voorkomen. U kunt bijvoorbeeld telefoonnummertekenreeksen opnieuw formatteren zodat alleen numerieke waarden worden opgenomen.

Indien nodig kunt u deze functie ook gebruiken om gevoelige informatie te maskeren, zoals persoonlijk identificeerbare informatie (PII), zodat deze niet wordt getoond aan gebruikers die uw app analyseren.

## Voorbeeld 1 - load-script om e-mailadressen van werknemers bij te werken

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/ReplaceRegEx.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 `Employees` met de e-mailadressen van werknemers van een organisatie.

* Aanmaken van een nieuw veld, `Email_Updated`, om een zoek- en vervangbewerking uit te voeren op waarden in het veld `Email_Original`.

Nadat het bedrijf van naam is veranderd, zijn alle e-mailadressen bijgewerkt om de nieuwe naam weer te geven.

Onze vereisten:

* Converteer alle domeinverwijzingen van `test.com` naar `newcompanyname.com`.

* We moeten hoofdletterongevoelige regexbewerkingen gebruiken.

Load-script

```
Employees:

Load 
ReplaceRegExI(Email_Original, '@[a-zA-Z0-9.-]*\.?test\.com', '@newcompanyname.com') as Email_Updated,
* Inline [
ID, Email_Original
1, john_doe@test.com
2, jane_doe@test.com
3, Michael_Andrews@test.com
4, charlie_kent@test.com
5, frances_johnson@test.com
6, rebecca_smith@test.com
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `ID`

* `Email_Original`

* `Email_Updated`

Resultatentabel

| ID | Email\_Original | Email\_Updated |
| --- | --- | --- |
| 1 | john\_doe@test.com | john\_doe@newcompanyname.com |
| 2 | jane\_doe@test.com | jane\_doe@newcompanyname.com |
| 3 | Michael\_Andrews@test.com | Michael\_Andrews@newcompanyname.com |
| 4 | charlie\_kent@support.test.com | charlie\_kent@newcompanyname.com |
| 5 | frances\_johnson@test.com | frances\_johnson@newcompanyname.com |
| 6 | rebecca\_smith@hr.test.com | rebecca\_smith@newcompanyname.com |

## Voorbeeld 2 - load-script om ISBN-codes op te maken

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

* Variabelen `ISBN_13` en `ISBN_10`, waarin de reguliere expressies worden opgeslagen die moeten worden gebruikt voor respectievelijk 13-cijferige en 10-cijferige ISBN-tekenreekspatronen.

* Een tabel `Employees` met ruwe numerieke waarden voor ISBN-boekcodes. De tabel bevat zowel 13-cijferige als 10-cijferige ISBN's.

* Verschillende bewerkingen om elk deel van het ISBN te extraheren en vervolgens een tekenreeks met de volledige code in het standaard, verwachte formaat te retourneren. Wij gebruiken een combinatie van ReplaceRegEx(), MatchRegEx(), ExtractRegExGroup() en Pick().

Onze vereisten:

* We willen de getallen opmaken in beter leesbare tekst, met behulp van de gestandaardiseerde opmaak:

  * ISBN ###-#-####-####-#

  * ISBN #-###-#####-#

Load-script

```
Set ISBN_13 = '^([0-9]{3})([0-9]{1})([0-9]{4})([0-9]{4})([0-9]{1})$';
Set ISBN_10 = '^([0-9]{1})([0-9]{3})([0-9]{5})([0-9]{1})$';

Formatted_Codes:

Load
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_13)', '$(ISBN_10)'), ReplaceRegEx(ISBN_Unformatted, '$(ISBN_13)', 'ISBN ' & ISBN_Component1 & '-' & ISBN_Component2 & '-' & ISBN_Component3 & '-' & ISBN_Component4 & '-' & ISBN_Component5), ReplaceRegEx(ISBN_Unformatted, '$(ISBN_10)', 'ISBN ' & ISBN_Component1 & '-' & ISBN_Component2 & '-' & ISBN_Component3 & '-' & ISBN_Component4)) as ISBN_Formatted;

Load *,
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_10)', '$(ISBN_13)'), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_10)', 1, 1), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_13)', 1, 1)) as ISBN_Component1,
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_10)', '$(ISBN_13)'), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_10)', 2, 1), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_13)', 2, 1)) as ISBN_Component2,
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_10)', '$(ISBN_13)'), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_10)', 3, 1), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_13)', 3, 1)) as ISBN_Component3,
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_10)', '$(ISBN_13)'), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_10)', 4, 1), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_13)', 4, 1)) as ISBN_Component4,
Pick(MatchRegEx(ISBN_Unformatted, '$(ISBN_10)', '$(ISBN_13)'), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_10)', 5, 1), ExtractRegExGroup(ISBN_Unformatted, '$(ISBN_13)', 5, 1)) as ISBN_Component5
inline `
ISBN_Unformatted
1233123412340
0122012301234
0001012301232
0111234567
5552555555553
2224222222222
1901234568
3333333333333
5551515151513
2321232323231
2444444444
8880999900000
`;
```

Resultaten

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

* `ISBN_Formatted`

Resultatentabel

| ISBN\_Formatted |
| --- |
| ISBN 000-1-0123-0123-2 |
| ISBN 0-111-23456-7 |
| ISBN 1-901-23456-8 |
| ISBN 2-444-44444-4 |
| ISBN 012-2-0123-0123-4 |
| ISBN 123-3-1234-1234-0 |
| ISBN 222-4-2222-2222-2 |
| ISBN 232-1-2323-2323-1 |
| ISBN 333-3-3333-3333-3 |
| ISBN 555-1-5151-5151-3 |
| ISBN 555-2-5555-5555-3 |
| ISBN 888-0-9999-0000-0 |

## Voorbeeld 3 - diagramuitdrukking om secundaire e-mailadressen bij te werken

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

#### Diagramuitdrukking 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 `Employees` met de e-mailadressen van werknemers van een organisatie. Deze worden opgeslagen in een enkele tekenreeks voor elke werknemer, waarin meerdere e-mailadressen worden opgeslagen.

Onze vereisten:

* Secundaire e-mailadressen moeten worden bijgewerkt om het domein `newcompanyname.com` te gebruiken. We willen geen primaire e-mailadressen bijwerken.

* We moeten hoofdletterongevoelige regexbewerkingen gebruiken.

Load-script

```
Employees:

Load * Inline [
ID, Emails
1, Primary: john_doe@test.com Secondary: john_michael_doe@example.com
2, Primary: jane_doe@test.com Secondary: jane_tabitha_doe_doe@example.com
3, Primary: Michael_Andrews@test.com Secondary: Michael_John_Andrews@example.com
4, Primary: charlie_kent@test.com Secondary: charlie_peter_kent@example.com
5, Primary: frances_johnson@test.com Secondary: frances_johnson@example.com
6, Primary: rebecca_smith@test.com Secondary: rebecca_danielle_smith@example.com
];
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `ID`

* `Emails`

Voeg de volgende berekende dimensie toe:

```
=ReplaceRegExI(Emails,'@[a-zA-Z0-9.-]*\.?[a-zA-Z0-9]*\.com','@newcompanyname.com',2)
```

Resultatentabel

| ID | Emails | =ReplaceRegExI(Emails,'@[a-zA-Z0-9.-]\*\.?example\.com','@newcompanyname.com',2) |
| --- | --- | --- |
| 1 | Primary: john\_doe@test.com Secondary: john\_michael\_doe@example.com | Primary: john\_doe@test.com Secondary: john\_michael\_doe@newcompanyname.com |
| 2 | Primary: jane\_doe@test.com Secondary: jane\_tabitha\_doe\_doe@example.com | Primary: jane\_doe@test.com Secondary: jane\_tabitha\_doe\_doe@newcompanyname.com |
| 3 | Primary: Michael\_Andrews@test.com Secondary: Michael\_John\_Andrews@example.com | Primary: Michael\_Andrews@test.com Secondary: Michael\_John\_Andrews@newcompanyname.com |
| 4 | Primary: charlie\_kent@test.com Secondary: charlie\_peter\_kent@example.com | Primary: charlie\_kent@test.com Secondary: charlie\_peter\_kent@newcompanyname.com.com |
| 5 | Primary: frances\_johnson@test.com Secondary: frances\_johnson@example.com | Primary: frances\_johnson@test.com Secondary: frances\_johnson@newcompanyname.com |
| 6 | Primary: rebecca\_smith@test.com Secondary: rebecca\_danielle\_smith@example.com | Primary: rebecca\_smith@test.com Secondary: rebecca\_danielle\_smith@newcompanyname.com |

Door een waarde van 2 op te geven voor het argument occurrence, kunnen we alleen de tweede instantie bijwerken die overeenkomt met het regexpatroon.

## Meer informatie

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