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?

InStrRev

特定の文字列を、別の文字列の最後から検索し、最初に出現する位置を返します。

Synopsis

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

引数

string1 検索対象の文字列式。
string2 検索する文字列式。
start オプション — 逆方向検索の開始位置を設定する定数。start の位置は、左から右に 1 から始まる番号で数えられます。検索は、右から左に行われます。start の位置の指定は、正の整数で、予想される string2 の位置よりも左の値にする必要があります。start の位置は、string2 の実際の位置にすることもできます。文字列全体を右から左に検索するには、-1 を指定します。start を省略すると、既定で -1 が使用されます。
compare オプション — 部分文字列を比較する際に使用する、比較の種類を示す数値。これを省略すると、バイナリ比較を実行します。値については、概要を参照してください。
Note:

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

概要

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

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

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

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

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

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

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

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

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

' A textual comparison starting at the last position. Returns 12.
Println InstrRev(SearchString, SearchChar, -1, 1)

' Comparison is binary by default (last argument is omitted). Returns 0.
Println InstrRev(SearchString, SearchChar, 8)

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

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

関連項目

FeedbackOpens in a new tab