[comment]: # attributes: notoc

[comment]: # (terms: ascii, bitlength, bytelength, char, concat, insert, left, length, ltrim, mid, repeat, replace, right, rtrim, trim )

[comment]: # ({6d5447dc-b12f316b})
# 9 Funzioni stringa

Tutte le funzioni elencate qui sono supportate in:

-   [Espressioni dei trigger](/manual/config/triggers/expression)
-   [Formule degli item calcolati](/manual/config/items/itemtypes/calculated)
-   [Macro di espressione](/manual/config/macros/expression_macros)

Le funzioni sono elencate senza informazioni aggiuntive. Fare clic sulla funzione per visualizzare tutti i dettagli.

|Function|Description|
|--|--------|
|[ascii](#ascii)|Il codice ASCII del carattere più a sinistra del valore.|
|[bitlength](#bitlength)|La lunghezza del valore in bit.|
|[bytelength](#bytelength)|La lunghezza del valore in byte.|
|[char](#char)|Restituisce il carattere interpretando il valore come codice ASCII.|
|[concat](#concat)|La stringa risultante dalla concatenazione dei valori degli item referenziati o di valori costanti.|
|[insert](#insert)|Inserisce caratteri o spazi specificati nella stringa di caratteri a partire dalla posizione specificata nella stringa.|
|[jsonpath](#jsonpath)|Restituisce il risultato JSONPath.|
|[left](#left)|Restituisce i caratteri più a sinistra del valore.|
|[length](#length)|La lunghezza del valore in caratteri.|
|[ltrim](#ltrim)|Rimuove i caratteri specificati dall'inizio della stringa.|
|[mid](#mid)|Restituisce una sottostringa di N caratteri a partire dalla posizione del carattere specificata da 'start'.|
|[repeat](#repeat)|Ripete una stringa.|
|[replace](#replace)|Trova il pattern nel valore e lo sostituisce con il valore di sostituzione.|
|[right](#right)|Restituisce i caratteri più a destra del valore.|
|[rtrim](#rtrim)|Rimuove i caratteri specificati dalla fine della stringa.|
|[trim](#trim)|Rimuove i caratteri specificati dall'inizio e dalla fine della stringa.|
|[xmlxpath](#xmlxpath)|Restituisce il risultato XML XPath.|

[comment]: # ({/6d5447dc-b12f316b})

[comment]: # ({3df12990-e91f4bca})
### Dettagli della funzione

Alcune note generali sui parametri delle funzioni:

-   I parametri delle funzioni sono separati da una virgola
-   Le espressioni sono accettate come parametri
-   I parametri di tipo stringa devono essere racchiusi tra doppi apici; in caso contrario potrebbero essere interpretati in modo errato
-   I parametri opzionali delle funzioni (o parti di parametro) sono indicati da
    `<` `>`

[comment]: # ({/3df12990-e91f4bca})

[comment]: # ({6ce6045e-6bdf63a4})
##### ascii(value) {#ascii}

Il codice ASCII del carattere più a sinistra del valore.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametro: 

-   **value** - il valore da controllare

Per esempio, un valore come 'Abc' restituirà '65' (codice ASCII di 'A').

Esempio:

    ascii(last(/host/key))

[comment]: # ({/6ce6045e-6bdf63a4})

[comment]: # ({1ab24b6c-30f96a52})
##### bitlength(value) {#bitlength}

La lunghezza di value in bit.<br>
Tipi di valore supportati: *String*, *Text*, *Log*, *Integer*.

Parametro: 

-   **value** - il valore da controllare

Esempio:

    bitlength(last(/host/key))

[comment]: # ({/1ab24b6c-30f96a52})

[comment]: # ({8c21016a-d58806ed})
##### bytelength(value) {#bytelength}

La lunghezza di value in byte.<br>
Tipi di valore supportati: *String*, *Text*, *Log*, *Integer*.

Parametro: 

-   **value** - il valore da controllare

Esempio:

    bytelength(last(/host/key))

[comment]: # ({/8c21016a-d58806ed})

[comment]: # ({62456378-e35a326a})
##### char(value) {#char}

Restituisce il carattere interpretando il valore come codice ASCII.<br>
Tipi di valore supportati: *Integer*.

Parametro: 

-   **value** - il valore da controllare

Il valore deve essere compreso nell'intervallo 0-255. Per esempio, un valore come '65' (interpretato come codice ASCII) restituirà 'A'.

Esempio:

    char(last(/host/key))

[comment]: # ({/62456378-e35a326a})

[comment]: # ({e3481e84-5e2f76e5})
##### concat(<value1>,<value2>,...) {#concat}

La stringa risultante dalla concatenazione dei valori degli item referenziati o di valori costanti.<br>
Tipi di valore supportati: *String*, *Text*, *Log*, *Float*, *Integer*.

Parametro: 

-   **valueX** - il valore restituito da una delle funzioni della cronologia o un valore costante (stringa, numero intero o in virgola mobile). Deve contenere almeno due parametri.

Ad esempio, un valore come 'Zab' concatenato a 'bix' (la stringa costante) restituirà 'Zabbix'.

Esempi:

    concat(last(/host/key),"bix")
    concat("1 min: ",last(/host/system.cpu.load[all,avg1]),", 15 min: ",last(/host/system.cpu.load[all,avg15]))

[comment]: # ({/e3481e84-5e2f76e5})

[comment]: # ({ebd6582c-06698de3})
##### insert(value,start,length,replacement) {#insert}

Inserisce i caratteri o gli spazi specificati nella stringa di caratteri a partire dalla posizione specificata nella stringa.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **start** - posizione iniziale;<br>
-   **length** - posizioni da sostituire;<br>
-   **replacement** - stringa di sostituzione.

Ad esempio, un valore come 'Zabbbix' verrà sostituito da 'Zabbix' se 'bb' (posizione iniziale 3, posizioni da sostituire 2) viene sostituito con 'b'.

Esempio:

    insert(last(/host/key),3,2,"b")

[comment]: # ({/ebd6582c-06698de3})

[comment]: # ({52f92ac2-2791e6b1})
##### jsonpath(value,path,<default>) {#jsonpath}

Restituisce il risultato JSONPath.<br>
Tipi di valore supportati: *Stringa*, *Testo*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **path** - il percorso (deve essere tra virgolette);<br>
-   **default** - il valore di fallback opzionale se la query JSONPath non restituisce dati. Si noti che in caso di altri errori viene restituito un errore (ad es. "unsupported construct").

Esempio:

    jsonpath(last(/host/proc.get[zabbix_agentd,,,summary]),"$..size")

[comment]: # ({/52f92ac2-2791e6b1})

[comment]: # ({3802644b-16f928ed})
##### left(value,count) {#left}

Restituisce i caratteri più a sinistra del valore.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **count** - il numero di caratteri da restituire.

Ad esempio, è possibile restituire 'Zab' da 'Zabbix' specificando 3 caratteri più a sinistra da restituire. Vedere anche [right()](#right).

Esempio:

    left(last(/host/key),3) #restituisce i tre caratteri più a sinistra

[comment]: # ({/3802644b-16f928ed})

[comment]: # ({b64efd51-b8f86065})
##### length(value) {#length}

La lunghezza di value in caratteri.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametro: 

-   **value** - il valore da controllare.

Esempi:

    length(last(/host/key)) #la lunghezza dell'ultimo valore
    length(last(/host/key,#3)) #la lunghezza del terzo valore più recente
    length(last(/host/key,#1:now-1d)) #la lunghezza del valore più recente di un giorno fa

[comment]: # ({/b64efd51-b8f86065})

[comment]: # ({561f79d7-01a5023c})
##### ltrim(value,<chars>) {#ltrim}

Rimuove i caratteri specificati dall'inizio della stringa.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **chars** (opzionale) - specifica i caratteri da rimuovere.

Per impostazione predefinita, vengono rimossi gli spazi vuoti iniziali (se non vengono specificati caratteri opzionali). Vedi anche: [rtrim()](#rtrim), [trim()](#trim).

Esempi:

    ltrim(last(/host/key)) #rimuove gli spazi vuoti dall'inizio della stringa
    ltrim(last(/host/key),"Z") #rimuove qualsiasi 'Z' dall'inizio della stringa
    ltrim(last(/host/key)," Z") #rimuove qualsiasi spazio e 'Z' dall'inizio della stringa

[comment]: # ({/561f79d7-01a5023c})

[comment]: # ({a67fc1e0-de3605ed})
##### mid(value,start,length) {#mid}

Restituisce una sottostringa di N caratteri a partire dalla posizione del carattere specificata da 'start'.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **start** - posizione iniziale della sottostringa;<br>
-   **length** - posizioni da restituire nella sottostringa.

Ad esempio, è possibile restituire 'abbi' da un valore come 'Zabbix' se la posizione iniziale è 2 e le posizioni da restituire sono 4.

Esempio:

    mid(last(/host/key),2,4)="abbi"

[comment]: # ({/a67fc1e0-de3605ed})

[comment]: # ({f8b077e7-9e3e42f7})
##### repeat(value,count) {#repeat}

Ripete una stringa.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **count** - il numero di volte da ripetere.

Esempio:

    repeat(last(/host/key),2) #ripete il valore due volte

[comment]: # ({/f8b077e7-9e3e42f7})

[comment]: # ({54a6774a-6aa607aa})
##### replace(value,pattern,replacement) {#replace}

Trova il pattern nel valore e sostituiscilo con replacement. Tutte le occorrenze del pattern verranno sostituite.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **pattern** - il pattern da trovare;<br>
-   **replacement** - la stringa con cui sostituire il pattern.

Esempio:

    replace(last(/host/key),"ibb","abb") #sostituisce tutte le occorrenze di 'ibb' con 'abb'

[comment]: # ({/54a6774a-6aa607aa})

[comment]: # ({30c04fe6-ccefcd9e})
##### right(value,count) {#right}

Restituisce i caratteri più a destra del valore.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **count** - il numero di caratteri da restituire.

Ad esempio, è possibile restituire 'bix' da 'Zabbix' specificando i 3 caratteri più a destra da restituire. Vedere anche [left()](#left).

Esempio:

    right(last(/host/key),3) #restituisce i tre caratteri più a destra

[comment]: # ({/30c04fe6-ccefcd9e})

[comment]: # ({d1d00105-6e9972ef})
##### rtrim(value,<chars>) {#rtrim}

Rimuove i caratteri specificati dalla fine della stringa.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **chars** (opzionale) - specifica i caratteri da rimuovere.

Per impostazione predefinita, gli spazi vuoti vengono rimossi da destra (se non vengono specificati caratteri opzionali). Vedi anche: [ltrim()](#ltrim), [trim()](#trim).

Esempi:

    rtrim(last(/host/key)) #rimuove gli spazi vuoti dalla fine della stringa
    rtrim(last(/host/key),"x") #rimuove qualsiasi 'x' dalla fine della stringa
    rtrim(last(/host/key),"x ") #rimuove qualsiasi 'x' e spazio dalla fine della stringa

[comment]: # ({/d1d00105-6e9972ef})

[comment]: # ({a119fc60-97fb4186})
##### trim(value,<chars>) {#trim}

Rimuove i caratteri specificati dall'inizio e dalla fine della stringa.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **chars** (opzionale) - specifica i caratteri da rimuovere.

Per impostazione predefinita, gli spazi vuoti vengono rimossi da entrambi i lati (se non vengono specificati caratteri opzionali). Vedi anche: [ltrim()](#ltrim), [rtrim()](#rtrim).

Esempi:

    trim(last(/host/key)) #rimuove gli spazi vuoti dall'inizio e dalla fine della stringa
    trim(last(/host/key),"_") #rimuove '_' dall'inizio e dalla fine della stringa

[comment]: # ({/a119fc60-97fb4186})

[comment]: # ({ab4c5ed4-b7fde6b3})
##### xmlxpath(value,path,<default>) {#xmlxpath}

Restituisce il risultato XML XPath.<br>
Tipi di valore supportati: *String*, *Text*, *Log*.

Parametri: 

-   **value** - il valore da controllare;<br>
-   **path** - il percorso (deve essere tra virgolette);<br>
-   **default** - il valore di fallback opzionale se la query XML XPath restituisce un nodeset vuoto. Non verrà restituito se il risultato vuoto non è un nodeset (ad es. una stringa vuota). In caso di altri errori viene restituito un errore (ad es. "invalid expression").

Esempio:

    xmlxpath(last(/host/xml_result),"/response/error/status")

[comment]: # ({/ab4c5ed4-b7fde6b3})

[comment]: # ({ba58f5e4-b8eeecec})
Vedere [tutte le funzioni supportate](/manual/config/triggers/expression#functions).

[comment]: # ({/ba58f5e4-b8eeecec})
