Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

InStr

ある文字列の中で、特定の文字列を検索し、最初に出現する位置を返します。

Synopsis

InStr([start,]string1,string2[,compare])

引数

start オプション — 各検索の開始位置を指定する数値式。これを省略すると、最初の文字位置から検索を開始します。compare を指定する場合、引数 start は必須です。
string1 検索対象の文字列式。
string2 検索する文字列式。
compare オプション — 部分文字列を比較する際に使用する、比較の種類を示す数値。値については、概要を参照してください。これを省略すると、バイナリ比較を実行します。
Note:

InStr 関数の構文の引数の順序は、InStrRev 関数の構文とは異なります。

概要

InStr 関数は、文字列を左から右に検索し、最初に出現した string2 の位置を返します。返される位置は、左から右にカウントされた正の整数です。文字列の最初の (左端の) 文字の位置は 1 になります。

start の値が、string2 の最初の (左端の) 文字の位置と同じか、それよりも小さい場合、InStr は、最初の string2 のインスタンスを検出します。start のポイントから前方に検索し、string2 の最初の (左端の) 文字の位置を返します。start の値が、string2 の最初の (左端の) 文字の位置の値よりも大きい場合、InStr は、0 を返します。start の値を省略すると、InStr は文字列全体を検索し、最初に検出された string2 の位置を返します。start の値が、string1 の長さよりも大きい場合、InStr は、0 を返します。start の値が、負数値の場合 InStr は、0 を返します。

引数 compare の値は以下のとおりです。

定数 説明
vbBinaryCompare 0 バイナリ比較を実行します
vbTextCompare 1 テキスト比較を実行します

InStr 関数は、以下の値を返します。

条件 InStr が返す値
string1 の長さがゼロの場合 0
string2 の長さがゼロの場合 start
string2 が見つからない場合 0
string2 が string1 内で見つかった場合 文字列が見つかった位置
start の値が string2 の長さより大きい場合 0

以下の例では、InStr を使用して文字列を検索します。

Dim SearchString, SearchChar
SearchString ="XXpXXpXXPXXP"        ' String to search in.
SearchChar = "P"                    ' Search for "P".

' A textual comparison starting at position 4. Returns 6.
PRintln Instr(4, SearchString, SearchChar, 1)   

' A binary comparison starting at position 1. Returns 9.
Println Instr(1, SearchString, SearchChar, 0)

' Comparison is binary by default (last argument is omitted).
Println Instr(SearchString, SearchChar)    ' Returns 9.

' A binary comparison starting at position 1. Returns 0 ("W" is not found).
Println Instr(1, SearchString, "W")

以下の例は、引数 start の使用法を示しています。

Println "-1: ",InStr(-1,"abcdefg","bc")  ' Returns 2
Println "0: ",InStr(0,"abcdefg","bc")    ' Returns 2
Println "1: ",InStr(1,"abcdefg","bc")    ' Returns 2
Println "2: ",InStr(2,"abcdefg","bc")    ' Returns 2
Println "3: ",InStr(3,"abcdefg","bc")    ' Returns 0
Println "6: ",InStr(6,"abcdefg","bc")    ' Returns 0
Println "7: ",InStr(7,"abcdefg","bc")    ' Returns 0
Println "8: ",InStr(8,"abcdefg","bc")    ' Returns 0

関連項目

FeedbackOpens in a new tab