indexof()

indexof() 関数は文字列内で特定の文字列が最初に現れる位置のインデックスを返します。

構文

indexof(STR, NEEDLE[, FROM_INDEX])

パラメーター

STR
検索対象の文字列です。
NEEDLE
STR 内で検索する文字列です。
FROM_INDEX
検索を開始する位置のインデックスです。インデックスは 0 から始まります。負の値を指定すると 0 として処理します。

説明

indexof() 関数は STR 内で NEEDLE が最初に現れる位置のインデックス(32 ビット整数)を返します。NEEDLE が見つからない場合は -1 を返します。

FROM_INDEX を指定すると、その位置から順方向に検索します。

STR または NEEDLEnull の場合は null を返します。値が文字列でない場合は toString() で変換して処理します。

エラーコード

該当なし

使用例

これらの使用例で参照する WEB_APACHE_SAMPLE テーブルを準備するには、クエリ実習用データを参照してください。

  1. URI 内で特定のパスセグメントの最初の位置を検索

    table limit=5 WEB_APACHE_SAMPLE | eval result = indexof(uri, "/") | fields uri, result
    | # result: 0(URI が / で始まる場合)
    
  2. URI 内で2番目の / の位置を検索(FROM_INDEX 指定)

    table limit=5 WEB_APACHE_SAMPLE | eval result = indexof(uri, "/", 1) | fields uri, result
    
  3. 含まれていない文字列の検索

    table limit=5 WEB_APACHE_SAMPLE | eval result = indexof(method, "?") | fields method, result
    | # result: -1
    
  4. null 入力

    json "{'val': null}" | eval result = indexof(val, "world")
    | # result: null
    

互換性

indexof() 関数は Sonar 4.0 以前のバージョンから提供されています。