[comment]: # attributes: notoc

[comment]: # ({12ccadca-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]: # ({/12ccadca-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}

値の長さ（ビット単位）<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>
サポートされる値の型: *Integer*

パラメーター:

- **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** - 返す文字数

例えば、'Zabbix'から'Zab'を返すには、左端から3文字を返します。[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}

値内のパターンを検索し、置換文字列で置き換えます。パターンに一致するすべての箇所が置換されます。<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** - 返す文字数

例えば、'Zabbix'から'bix'を返すには、右端から3文字を返します。[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]: # ({ba59dd3a-b8eeecec})

[サポートされているすべての関数](/manual/appendix/functions)を参照してください。

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