# ReplaceRegEx Skript- und Diagrammfunktion

ReplaceRegEx() gibt einen String zurück, nachdem eine oder mehrere Übereinstimmungen zwischen einem Eingabestring und einem Muster für den angegebenen regulären Ausdruck ersetzt wurden. Der Text, der den übereinstimmenden Text ersetzt, wird im Argument to\_str angegeben. Die Funktion arbeitet von links nach rechts, aber wenn Sie einen negativen Wert für occurrence angeben, liest die Funktion von rechts nach links.

Diese Funktion führt Regex-Vorgänge durch, bei denen die Groß- und Kleinschreibung beachtet wird. Sie können alternativ die Variante ReplaceRegExI() verwenden, um Regex-Vorgänge ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen.

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

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

Rückgabe Datentyp: String

Argumente

| Argument | Beschreibung |
| --- | --- |
| text | Der Text des Eingabestrings, den Sie ganz oder teilweise durch den neuen Text aus to\_str ersetzen möchten. |
| regex | Der reguläre Ausdruck, der definiert, wann Text ersetzt werden soll. Übereinstimmungen zwischen diesem Argument und dem Argument text werden ersetzt. |
| to\_str | Der neue Text, mit dem Sie den bestehenden Inhalt von text ersetzen möchten. |
| occurrence | Die Nummer der Übereinstimmung (zwischen Eingabetext und regulärem Ausdruck), die durch neuen Text ersetzt werden soll.<br><br>Dies ist ein optionales Argument. Der Standardwert ist 0, wenn es weggelassen wird. Wenn der Wert 0 verwendet wird oder wenn das Argument weggelassen wird, werden alle Übereinstimmungen zwischen text und regex durch to\_str ersetzt.<br><br>Sie können einen negativen Wert für occurrence angeben, um nach Übereinstimmungen von rechts nach links zu suchen. |

Funktionsbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `ReplaceRegEx('abc123','[0-9]','x')` | Gibt `abcxxx` zurück. In diesem Beispiel wird der gesamte Text aus dem Eingabestring, der mit dem Regex-Muster übereinstimmt, durch den neuen Text ersetzt. |
| `ReplaceRegEx('abc123','[0-9]','x',1)` | Gibt `abcx23` zurück. Nur das erste Vorkommen einer Übereinstimmung zwischen dem Eingabestring und dem Regex-Muster wird ersetzt. |
| `ReplaceRegEx('abc123','[0-9]','x',4)` | Gibt `abc123` zurück. Es gibt nur drei mögliche Übereinstimmungen zwischen dem Eingabestring und dem Regex-Muster, daher wird keine Änderung vorgenommen. |
| `ReplaceRegEx('ABC123','[a-c]','5')` | Gibt `ABC123` zurück. Es wird keine Änderung vorgenommen, da ReplaceRegEx() zwischen Groß- und Kleinschreibung unterscheidet und die Variante, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird, nicht verwendet wird. |
| `ReplaceRegExI('ABC123','[a-c]','5')` | Gibt `555123` zurück. Die Variante ReplaceRegExI() der Funktion ohne Berücksichtigung von Groß- und Kleinschreibung wird verwendet. |

## Verwendung

Sie können ReplaceRegEx() verwenden, um Text so zu ändern, dass er den Formatierungs- und Konformitätsstandards entspricht, insbesondere wenn komplexe Muster in den Daten vorhanden sind. Sie können z. B. Telefonnummern neu formatieren, sodass nur numerische Werte enthalten sind.

Bei Bedarf können Sie diese Funktion auch verwenden, um sensible Informationen wie z. B. personenbezogene Daten zu maskieren, sodass sie den Benutzern, die Ihre Anwendung analysieren, nicht angezeigt werden.

## Beispiel 1 – Ladeskript zur Aktualisierung der E-Mail-Adressen von Mitarbeitern

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Eine Tabelle `Employees` mit den E-Mail-Adressen der Mitarbeiter einer Organisation.

* Erstellung eines neuen Felds (`Email_Updated`), um einen Such- und Ersetzungsvorgang für Werte im Feld `Email_Original` durchzuführen.

Nachdem das Unternehmen seinen Namen geändert hat, wurden alle E-Mail-Adressen aktualisiert, um dem neuen Namen zu entsprechen.

Unsere Anforderungen:

* Konvertieren aller Domänenverweise von `test.com` in `newcompanyname.com`.

* Wir müssen Regex-Vorgänge verwenden, die Groß- und Kleinschreibung nicht berücksichtigen.

Ladeskript

```
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
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `ID`

* `Email_Original`

* `Email_Updated`

Ergebnistabelle

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

## Beispiel 2 – Ladeskript zum Formatieren von ISBN-Codes

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

#### Ladeskript und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Variablen`ISBN_13` und `ISBN_10`, in denen die regulären Ausdrücke für 13-stellige bzw. 10-stellige ISBN-Stringmuster gespeichert sind.

* Eine Tabelle `Employees` mit numerischen Rohwerten für ISBN-Buchcodes. Die Tabelle enthält sowohl 13-stellige als auch 10-stellige ISBNs.

* Mehrere Vorgänge, um jeden Teil der ISBN zu extrahieren und dann einen String zurückzugeben, der den gesamten Code im erwarteten Standardformat enthält. Wir verwenden eine Kombination aus ReplaceRegEx(), MatchRegEx(), ExtractRegExGroup() und Pick().

Unsere Anforderungen:

* Wir möchten die Zahlen als besser lesbaren Text formatieren, indem wir die standardisierte Formatierung verwenden:

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

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

Ladeskript

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* `ISBN_Formatted`

Ergebnistabelle

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

## Beispiel 3 – Diagrammformel zur Aktualisierung sekundärer E-Mail-Adressen

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

#### Diagrammformel und Ergebnisse

Übersicht

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Eine Tabelle `Employees` mit den E-Mail-Adressen der Mitarbeiter einer Organisation. Diese werden für jeden Mitarbeiter in einem einzigen String gespeichert, in dem mehrere E-Mail-Adressen gespeichert sind.

Unsere Anforderungen:

* Die sekundären E-Mail-Adressen müssen aktualisiert werden, um die Domäne `newcompanyname.com` zu verwenden. Wir möchten keine primären E-Mail-Adressen aktualisieren.

* Wir müssen Regex-Vorgänge verwenden, die Groß- und Kleinschreibung nicht berücksichtigen.

Ladeskript

```
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
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `ID`

* `Emails`

Fügen Sie die folgende dynamische Dimension hinzu:

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

Ergebnistabelle

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

Wenn Sie für das Argument occurrence den Wert 2 angeben, können wir nur das zweite Vorkommen aktualisieren, das mit dem Regex-Muster übereinstimmt.

[Arbeiten mit regulären Ausdrücken in Ladeskripten und Diagrammformeln](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)