[comment]: # ({35ff4943-5dd1c4b4})
# 15 Atkāpšanās piemēri

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

[comment]: # ({a44d3dec-b5a80d5b})
#### Pārskats

Šajā lapā ir sniegti piemēri pareizas atsoļošanas izmantošanai, lietojot regulārās izteiksmes dažādos kontekstos.

:::notetip
Izmantojot trigeris izteiksmes konstruktoru, pareiza atsoļošana regulārajās izteiksmēs tiek pievienota automātiski.
:::

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

[comment]: # ({c785c1f7-51a937e8})
#### Piemēri

**Lietotāja makross ar kontekstu**

Regulārā izteiksme: `\.+\"[a-z]+`<br>
Lietotāja makross ar kontekstu: `{$MACRO:regex:"\.+\\"[a-z]+"}`

Ņemiet vērā:

-   atpakaļvērstās slīpsvītras nav [atdalītas](/manual/config/macros/user_macros_context#important-notes);
-   pēdiņas ir atdalītas.
			
**Makro funkcija vienuma atslēgas parametrā**

Regulārā izteiksme: `.+:(\d+)$`<br>
Vienuma atslēga: `net.tcp.service[tcp,,"{{$ENDPOINT}.regsub(\".+:(\d+)$\",\1)}"]`

Ņemiet vērā:

-   regulārā izteiksme `regsub` makro funkcijā ir ievietota dubultpēdiņās (jo satur aizverošo iekavu);
-   pēdiņas ap regulāro izteiksmi ir atdalītas (jo viss trešais vienuma parametrs ir ievietots dubultpēdiņās);
-   trešais vienuma atslēgas parametrs ir ievietots dubultpēdiņās, jo tas satur komatu.

**LLD makro funkcija**

Regulārā izteiksme: `\.+\"([a-z]+)`<br>
LLD makross: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`

Ņemiet vērā:

-   atpakaļvērstās slīpsvītras nav atdalītas;
-   pēdiņas ir atdalītas.

**LLD makro funkcija lietotāja makrosa kontekstā**

Regulārā izteiksme: `\.+\"([a-z]+)`<br>
LLD makross: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Lietotāja makross ar kontekstu: `{$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"[a-z]+\", \1)}"}`

Ņemiet vērā:

-   atpakaļvērsto slīpsvītru atdalīšana LLD gadījumā nemainās;
-   ievietojot LLD makrosu lietotāja makrosa kontekstā, tas jāievieto virknē:
   1.   ap makro izteiksmi tiek pievienotas pēdiņas;
   2.   pēdiņas tiek atdalītas; kopumā tiek ieviestas 3 jaunas atpakaļvērstās slīpsvītras.

**Funkcijas virknes parametrs (jebkurš)** 

Kā piemērs izmantots `concat`.

Virknes saturs: `\.+\"[a-z]+`<br>
Izteiksme: `concat("abc", "\\.\\\"[a-z]+")`

Ņemiet vērā:

-   virknes parametros jāatdala gan atpakaļvērstās slīpsvītras, gan pēdiņas.

**LLD makro funkcija funkcijas virknes parametrā**

Regulārā izteiksme: `\.+\"([a-z]+)`<br>
LLD makross: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Izteiksme: `concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"([a-z]+)\", \\1)}")`

Ņemiet vērā:

-   virknes parametros jāatdala gan atpakaļvērstās slīpsvītras, gan pēdiņas;
-   tiek pievienots vēl viens atdalīšanas slānis, jo makross tiks atrisināts tikai pēc tam, kad virkne būs noņemta no pēdiņām;

**Lietotāja makross ar kontekstu funkcijas virknes parametrā**

Regulārā izteiksme: `\.+\"[a-z]+`<br>
Lietotāja makross ar kontekstu: `{$MACRO:regex:"\.+\\"[a-z]+"}`<br>
Izteiksme: `concat("abc, "{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}")`

Ņemiet vērā:

-   tāpat kā iepriekšējā piemērā ir nepieciešams papildu atdalīšanas slānis;
-   atpakaļvērstās slīpsvītras un pēdiņas tiek atdalītas tikai augstākā līmeņa atdalīšanai (jo tas ir virknes parametrs).

**LLD makro funkcija lietotāja makrosa kontekstā funkcijā**

Regulārā izteiksme: `\.+\"([a-z])+`<br>
LLD makross: `{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}`<br>
Lietotāja makross ar kontekstu: `{$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}"}`<br>
Izteiksme: `concat("abc, "{$MACRO:\"{{#MACRO}.iregsub(\\\"\.+\\\\\\\"([a-z]+)\\\", \\1)}\"}")`

Ņemiet vērā trīs atdalīšanas slāņus:

   1. LLD makro funkcijai bez atpakaļvērsto slīpsvītru atdalīšanas;
   2. Lietotāja makrosam ar kontekstu bez atpakaļvērsto slīpsvītru atdalīšanas;
   3. Funkcijas virknes parametram ar atpakaļvērsto slīpsvītru atdalīšanu.
			
**Lietotāja makross ar kontekstu tieši virknē**

Regulārā izteiksme: `\.+\"[a-z]+`<br>
Lietotāja makross ar kontekstu: `{$MACRO:regex:"\.+\\"[a-z]+"}`<br>
Kādas izteiksmes virknes iekšpusē, piemēram: `func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"`

Ņemiet vērā:

-   virknēs arī jāatdala atpakaļvērstās slīpsvītras;
-   virknēs arī jāatdala pēdiņas;
-   atkal gadījums ar 2 atdalīšanas līmeņiem:
	1. atdalīšana lietotāja makrosa kontekstam bez atpakaļvērsto slīpsvītru atdalīšanas;
	2. atdalīšana tāpēc, ka tā ir virkne, ar atpakaļvērsto slīpsvītru atdalīšanu.

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