[comment]: # ({35ff4943-5dd1c4b4})
# 15 Escaping-Beispiele

[comment]: # ({/35ff4943-5dd1c4b4})

[comment]: # ({a44d3dec-b5a80d5b})
#### Übersicht

Diese Seite enthält Beispiele für die korrekte Escaping-Verwendung bei regulären Ausdrücken in verschiedenen Kontexten.

:::notetip
Bei Verwendung des Konstruktors für Auslöser-Ausdrücke wird das korrekte Escaping in regulären Ausdrücken automatisch hinzugefügt.
:::

[comment]: # ({/a44d3dec-b5a80d5b})

[comment]: # ({c785c1f7-51a937e8})
#### Beispiele

**Benutzermakro mit Kontext**

Regulärer Ausdruck: `\.+\"[a-z]+`<br>
Benutzermakro mit Kontext: `{$MACRO:regex:"\.+\\"[a-z]+"}`

Beachten Sie:

-   Backslashes werden [nicht maskiert](/manual/config/macros/user_macros_context#important-notes);
-   Anführungszeichen werden maskiert.
			
**Makrofunktion innerhalb eines Datenpunktschlüssel-Parameters**

Regulärer Ausdruck: `.+:(\d+)$`<br>
Datenpunktschlüssel: `net.tcp.service[tcp,,"{{$ENDPOINT}.regsub(\".+:(\d+)$\",\1)}"]`

Beachten Sie:

-   der reguläre Ausdruck innerhalb der Makrofunktion `regsub` steht in doppelten Anführungszeichen (weil er eine schließende Klammer enthält);
-   die Anführungszeichen um den regulären Ausdruck werden maskiert (weil der gesamte dritte Datenpunkt-Parameter in doppelten Anführungszeichen steht);
-   der dritte Datenpunktschlüssel-Parameter steht in doppelten Anführungszeichen, weil er ein Komma enthält.

**LLD-Makrofunktion**

Regulärer Ausdruck: `\.+\"([a-z]+)`<br>
LLD-Makro: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`

Beachten Sie:

-   Backslashes werden nicht maskiert;
-   Anführungszeichen werden maskiert.

**LLD-Makrofunktion innerhalb eines Benutzermakro-Kontexts**

Regulärer Ausdruck: `\.+\"([a-z]+)`<br>
LLD-Makro: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Benutzermakro mit Kontext: `{$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"[a-z]+\", \1)}"}`

Beachten Sie:

-   die Backslash-Maskierung für LLD ändert sich nicht;
-   beim Einfügen des LLD-Makros in den Benutzermakro-Kontext müssen wir es in eine Zeichenkette setzen:
   1.   Anführungszeichen werden um den Makroausdruck hinzugefügt;
   2.   Anführungszeichen werden maskiert; insgesamt werden 3 neue Backslashes eingefügt.

**Zeichenkettenparameter einer Funktion (beliebig)** 

`concat` wird als Beispiel verwendet.

Zeichenketteninhalt: `\.+\"[a-z]+`<br>
Ausdruck: `concat("abc", "\\.\\\"[a-z]+")`

Beachten Sie:

-   Zeichenkettenparameter erfordern die Maskierung sowohl von Backslashes als auch von Anführungszeichen.

**LLD-Makrofunktion innerhalb eines Zeichenkettenparameters einer Funktion**

Regulärer Ausdruck: `\.+\"([a-z]+)`<br>
LLD-Makro: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Ausdruck: `concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"([a-z]+)\", \\1)}")`

Beachten Sie:

-   Zeichenkettenparameter erfordern die Maskierung sowohl von Backslashes als auch von Anführungszeichen;
-   eine weitere Maskierungsebene wird hinzugefügt, weil das Makro erst aufgelöst wird, nachdem die Zeichenkette ohne Anführungszeichen vorliegt;

**Benutzermakro mit Kontext innerhalb eines Zeichenkettenparameters einer Funktion**

Regulärer Ausdruck: `\.+\"[a-z]+`<br>
Benutzermakro mit Kontext: `{$MACRO:regex:"\.+\\"[a-z]+"}`<br>
Ausdruck: `concat("abc, "{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}")`

Beachten Sie:

-   wie im vorherigen Beispiel ist eine zusätzliche Maskierungsebene erforderlich;
-   Backslashes und Anführungszeichen werden nur für die Maskierung auf oberster Ebene maskiert (da es sich um einen Zeichenkettenparameter handelt).

**LLD-Makrofunktion innerhalb eines Benutzermakro-Kontexts innerhalb einer Funktion**

Regulärer Ausdruck: `\.+\"([a-z])+`<br>
LLD-Makro: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Benutzermakro mit Kontext: `{$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}"}`<br>
Ausdruck: `concat("abc, "{$MACRO:\"{{#MACRO}.iregsub(\\\"\.+\\\\\\\"([a-z]+)\\\", \\1)}\"}")`

Beachten Sie die drei Maskierungsebenen:

   1. Für die LLD-Makrofunktion, ohne Maskierung von Backslashes;
   2. Für das Benutzermakro mit Kontext, ohne Maskierung von Backslashes;
   3. Für den Zeichenkettenparameter einer Funktion, mit Maskierung von Backslashes.
			
**Benutzermakro mit Kontext direkt innerhalb einer Zeichenkette**

Regulärer Ausdruck: `\.+\"[a-z]+`<br>
Benutzermakro mit Kontext: `{$MACRO:regex:"\.+\\"[a-z]+"}`<br>
Innerhalb der Zeichenkette eines beliebigen Ausdrucks, zum Beispiel: `func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"`

Beachten Sie:

-   Zeichenketten erfordern ebenfalls die Maskierung von Backslashes;
-   Zeichenketten erfordern ebenfalls die Maskierung von Anführungszeichen;
-   erneut ein Fall mit 2 Maskierungsebenen:
	1. Maskierung für den Benutzermakro-Kontext ohne Backslash-Maskierung;
	2. Maskierung dafür, dass es sich um eine Zeichenkette mit Backslash-Maskierung handelt.

[comment]: # ({/c785c1f7-51a937e8})
