前のページ|次のページ

INDEX関数

文字式から文字列を検索し、最初に検索された文字列の最初の文字の位置を返します。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。
ヒント: この関数に相当するDBCS関数は、SAS各国語サポート(NLS):リファレンスガイドKINDEXです。DBCSの互換性を参照してください。

構文

INDEX(source, excerpt)

必須引数

source

検索する文字の定数、変数または式を指定します。

excerpt

sourceで検索する文字の文字列を指定する文字定数、変数または式です。

ヒント 文字のリテラル文字列を引用符で囲みます。
先頭および末尾の空白はどちらもexcerpt引数の一部としてみなされます。末尾の空白を削除するには、INDEX関数内のexcerpt変数にTRIM関数を含めます。

詳細

基本

INDEX関数は、sourceを左から右へ、excerptで指定される文字列が最初に現れる個所を検索し、source内での文字列の最初の文字の位置を返します。source内に文字列が見つからない場合、INDEXは値0を返します。文字列が複数回現れる場合、INDEXは、最初の出現個所の位置のみを返します。

DBCSの互換性

この関数に相当するDBCS関数は、KINDEXです。詳細については、KINDEX 関数 (SAS各国語サポート(NLS):リファレンスガイド)を参照してください。

例1: ソース文字列の変数位置の検出

次の例では、source内でのexcerpt引数の最初の位置を検出します。
data _null_;
   a = 'ABC.DEF(X=Y)';
   b = 'X=Y';
   x = index(a, b);
   put x=;
run;
SASは次の出力をログに書き出します。
x=9

例2: INDEX関数とTRIM関数を併用する場合の末尾の空白の削除

次の例では、TRIM関数を使わずにINDEX関数を使用する場合の結果を示します。TRIM関数を使わずにINDEXを使用する場合、先頭および末尾の空白はexcerpt引数の一部としてみなされます。TRIM関数とINDEXを併用する場合、次の例のようにTRIMはexcerpt引数から末尾の空白を削除します。TRIM関数は、INDEX関数内で使用されます。
options nodate nostimer ls=78 ps=60;
data _null_;
   length a b $14;
   a='ABC.DEF (X=Y)';
   b='X=Y';
   q=index(a, b);
   w=index(a, trim(b));
   put q= w=;
run;
SASは次の出力をログに書き出します。
q=0 w=10

関連項目:

前のページ|次のページ|ページの先頭へ