前のページ|次のページ

FIND関数

文字列内の特定の部分文字列を検索します。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。
ヒント: かわりにKINDEX 関数 (SAS各国語サポート(NLS):リファレンスガイド) を使用してエンコーディングの非依存コードを書き込みます。

構文

必須引数

string

検索する部分文字列に関する文字定数、変数または式を指定します。

ヒント 文字のリテラル文字列を引用符で囲みます。

substring

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

ヒント 文字のリテラル文字列を引用符で囲みます。

オプション引数

modifier

1つ以上の修飾子を文字定数、変数または式で指定します。有効な修飾子は次のとおりです。

iまたはI

検索時に大文字と小文字を区別しません。この修飾子を指定しないと、FINDはsubstringの文字の大文字と小文字に一致する部分文字列のみを検索します。

tまたはT

stringおよびsubstringから末尾の空白を取り除きます。

注: 両方(またはすべて)の文字引数ではなく一方のみから末尾の空白を削除する場合は、FIND関数にT修飾子を使用するかわりに、TRIM関数を使用します。
ヒント
modifierが定数の場合、引用符で囲みます。一組の引用符で複数の定数を指定します。modifierを変数または式として表すこともできます。

start-position

検索を開始する位置を指定し、検索の方向を指定する整数値を持つ数値定数、変数または式です。

詳細

FIND関数はstringで最初に出現する指定のsubstringを検索し、その部分文字列の位置を返します。string内に部分文字列が見つからない場合、FINDは値0を返します。
start-positionを指定しないと、FINDはstringの最初から検索を開始し、左から右にstringを検索します。start-positionを指定すると、start-positionの絶対値で検索の開始位置が決定されます。検索方向は、start-positionの符号で決まります。
startposの値
アクション
0より大きい
start-positionの位置から検索を開始し、右方向に検索します。start-positionstringの長さよりも大きい場合、FINDは値0を返します。
0より小さい
start-positionの位置から検索を開始し、左方向に検索します。–start-positionstringの長さよりも大きい場合、検索はstringの最後から開始します。
0
値0を返します。

比較

  • FIND関数は文字列の文字の部分文字列を検索しますが、FINDC関数は文字列の個々の文字を検索します。
  • FIND関数とINDEX関数はどちらも文字列の文字の部分文字列を検索します。ただし、INDEX関数にはmodifier引数もstart-position引数もありません。

SASステートメントとその結果を次に示します。
SASステートメント
結果
whereisshe=find('She sells seashells? Yes, she does.','she ');
put whereisshe;
27
variable1='She sells seashells? Yes, she does.';
variable2='she ';
variable3='i';
whereisshe_i=find(variable1,variable2,variable3);
put whereisshe_i;
1
expression1='She sells seashells? '||'Yes, she does.';
expression2=kscan('he or she',3)||'  ';
expression3=trim('t   ');
whereisshe_t=find(expression1,expression2,expression3);
put whereisshe_t;
14
xyz='She sells seashells? Yes, she does.';
startposvar=22;
whereisshe_22=find(xyz,'she',startposvar);
put whereisshe_22;
27
xyz='She sells seashells? Yes, she does.';
startposexp=1-23;
whereisShe_ineg22=find(xyz,'She','i',startposexp);
put whereisShe_ineg22;
14

関連項目:

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