[comment]: # attributes: notoc

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

[comment]: # ({6d5447dc-b12f316b})
# 9 文字列関数

ここに記載されているすべての関数は、以下でサポートされています。

-   [トリガー式](/manual/config/triggers/expression)
-   [計算アイテムの数式](/manual/config/items/itemtypes/calculated)
-   [式マクロ](/manual/config/macros/expression_macros)

関数は追加情報なしで一覧表示されています。詳細については、関数をクリックしてください。

|Function|Description|
|--|--------|
|[ascii](#ascii)|値の最も左の文字のASCIIコード。|
|[bitlength](#bitlength)|値のビット単位の長さ。|
|[bytelength](#bytelength)|値のバイト単位の長さ。|
|[char](#char)|値をASCIIコードとして解釈し、対応する文字を返します。|
|[concat](#concat)|参照されたアイテムの値または定数値を連結して得られる文字列。|
|[insert](#insert)|文字列内の指定した位置から、指定した文字または空白を文字列に挿入します。|
|[jsonpath](#jsonpath)|JSONPathの結果を返します。|
|[left](#left)|値の左端の文字列を返します。|
|[length](#length)|値の文字数。|
|[ltrim](#ltrim)|文字列の先頭から指定した文字を削除します。|
|[mid](#mid)|'start' で指定した文字位置から始まる N 文字の部分文字列を返します。|
|[repeat](#repeat)|文字列を繰り返します。|
|[replace](#replace)|値の中からパターンを検索し、置換文字列に置き換えます。|
|[right](#right)|値の右端の文字列を返します。|
|[rtrim](#rtrim)|文字列の末尾から指定した文字を削除します。|
|[trim](#trim)|文字列の先頭と末尾から指定した文字を削除します。|
|[xmlxpath](#xmlxpath)|XML XPathの結果を返します。|

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

[comment]: # ({3df12990-e91f4bca})
### 関数の詳細

関数パラメータに関する一般的な注意事項:

-   関数パラメータはカンマで区切られます
-   パラメータとして式が使用できます
-   文字列パラメータはダブルクォーテーションで囲む必要があります。そうしないと誤解釈される可能性があります
-   オプションの関数パラメータ（またはパラメータの一部）は`<` `>`で示されます

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

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

値の最左文字のASCIIコード。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値

例えば、'Abc'のような値は'65'（'A'のASCIIコード）を返します。

例:

    ascii(last(/host/key))

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

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

valueのビット長。<br>
サポートされている値の型: *String*, *Text*, *Log*, *Integer*。

パラメータ:

-   **value** - チェックする値

例:

    bitlength(last(/host/key))

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

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

値のバイト長。<br>
サポートされている値の型: *String*, *Text*, *Log*, *Integer*。

パラメータ:

-   **value** - チェックする値

例:

    bytelength(last(/host/key))

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

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

値をASCIIコードとして解釈して文字を返します。<br>
サポートされている値の型: *整数*。

パラメータ:

-   **value** - チェックする値

値は0-255の範囲でなければなりません。例えば、'65'という値（ASCIIコードとして解釈）は'A'を返します。

例:

    char(last(/host/key))

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

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

参照されたアイテムの値または定数値を連結した結果の文字列。<br>
サポートされている値の型: *String*, *Text*, *Log*, *Float*, *Integer*。

パラメータ:

-   **valueX** - ヒストリ関数のいずれかによって返される値、または定数値 (文字列、整数、または浮動小数点数)。少なくとも2つのパラメータを含める必要があります。

たとえば、「Zab」のような値に「bix」(定数文字列)を連結すると、「Zabbix」が返されます。

例:

    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}

指定した位置から文字列に指定した文字またはスペースを挿入します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **start** - 開始位置<br>
-   **length** - 置換する位置数<br>
-   **replacement** - 置換文字列

例えば、'Zabbbix'の値は、'bb'（開始位置3、置換する位置数2）を'b'に置換すると'Zabbix'に置換されます。

例:

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

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

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

JSONPathの結果を返します。<br>
サポートされている値の型: *String*、*Text*、*Log*。

パラメータ:

-   **value** - チェックする値;<br>
-   **path** - パス（引用符で囲む必要があります）;<br>
-   **default** - JSONPathクエリがデータを返さない場合のオプションのフォールバック値。他のエラーの場合は失敗が返されます（例："unsupported construct"）。

例:

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

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

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

値の左端の文字を返します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **count** - 返す文字数

たとえば、返す左端の文字数を3に指定することで、'Zabbix'から'Zab'を返すことができます。[right()](#right)も参照してください。

例:

    left(last(/host/key),3) #左端の3文字を返す

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

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

値の文字数。<br>
サポートされている値の型：*String*、*Text*、*Log*。

パラメータ:

-   **value** - チェックする値

例:

    length(last(/host/key)) #最新値の文字数
    length(last(/host/key,#3)) #3番目に新しい値の文字数
    length(last(/host/key,#1:now-1d)) #1日前の最新値の文字数

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

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

文字列の先頭から指定した文字を削除します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **chars** (省略可能) - 削除する文字を指定

省略可能な文字が指定されていない場合は、デフォルトで空白文字が左側から削除されます。詳細は [rtrim()](#rtrim)、[trim()](#trim) も参照してください。

例:

    ltrim(last(/host/key)) #文字列の先頭から空白を削除
    ltrim(last(/host/key),"Z") #文字列の先頭から'Z'をすべて削除
    ltrim(last(/host/key)," Z") #文字列の先頭から空白と'Z'をすべて削除

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

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

'start'で指定された文字位置から始まるN文字の部分文字列を返します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値;<br>
-   **start** - 部分文字列の開始位置;<br>
-   **length** - 部分文字列で返す文字数。

たとえば、開始位置が2、返す文字数が4の場合、'Zabbix'のような値から'abbi'を返すことができます。

例:

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

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

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

文字列を繰り返します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **count** - 繰り返す回数

例:

    repeat(last(/host/key),2) #値を2回繰り返す

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

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

値の中からパターンを見つけて、replacementで置き換えます。パターンに一致するすべての箇所が置き換えられます。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **pattern** - 検索するパターン<br>
-   **replacement** - パターンを置き換える文字列

例:

    replace(last(/host/key),"ibb","abb") # 'ibb'をすべて'abb'に置き換える

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

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

値の右端の文字を返します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値;<br>
-   **count** - 返す文字数。

例えば、右端から3文字を返すことで 'Zabbix' から 'bix' を返すことができます。[left()](#left) も参照してください。

例:

    right(last(/host/key),3) #右端から3文字を返す

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

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

文字列の末尾から指定した文字を削除します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値<br>
-   **chars** (省略可能) - 削除する文字を指定

省略可能な文字が指定されていない場合は、デフォルトで空白が右側から削除されます。詳細は [ltrim()](#ltrim)、[trim()](#trim) も参照してください。

例:

    rtrim(last(/host/key)) #文字列の末尾から空白を削除
    rtrim(last(/host/key),"x") #文字列の末尾から'x'を削除
    rtrim(last(/host/key),"x ") #文字列の末尾から'x'と空白を削除

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

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

文字列の先頭と末尾から指定した文字を削除します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値;<br>
-   **chars** (省略可能) - 削除する文字を指定します。

デフォルトでは、（省略可能な文字が指定されていない場合）両端の空白がトリミングされます。関連項目: [ltrim()](#ltrim), [rtrim()](#rtrim)。

例:

    trim(last(/host/key)) #文字列の先頭と末尾から空白を削除
    trim(last(/host/key),"_") #文字列の先頭と末尾から'_'を削除

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

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

XML XPathの結果を返します。<br>
サポートされている値の型: *String*, *Text*, *Log*。

パラメータ:

-   **value** - チェックする値;<br>
-   **path** - パス（引用符で囲む必要があります）;<br>
-   **default** - XML XPathクエリが空のノードセットを返した場合のオプションのフォールバック値。空の結果がノードセットでない場合（つまり空文字列）、返されません。他のエラーの場合は失敗が返されます（例: "invalid expression"）。

例:

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

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

[comment]: # ({ba58f5e4-b8eeecec})
[サポートされているすべての関数](/manual/config/triggers/expression#functions)を参照してください。

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