文字のリストにある文字を文字列から検索します。
カテゴリ: | 文字 |
制限事項: | この関数は、I18Nレベル0準拠しており、SBCSデータ向けに設計されています。この関数をDBCSまたはMBCSデータの処理に使用しないでください。 |
ヒント: | かわりにKINDEXC 関数 (SAS各国語サポート(NLS):リファレンスガイド)を使用してエンコーディングの非依存コードを書き込みます。 |
検索する文字列を指定する文字定数、変数または式です。
ヒント | 文字のリテラル文字列を引用符で囲みます。 |
文字リストを初期化する定数、変数または文字式です。modifier引数でK修飾子を指定しないと、FINDCはこのリストの文字を検索します。K修飾子を指定すると、FINDCはこの文字のリストにないすべての文字を検索します。他の修飾子を使うことでリストに文字をさらに追加できます。
文字定数、変数または式です。これらの各文字でFINDC関数のアクションを変更します。修飾子として使用できる文字(大文字または小文字)は次のとおりです。
無視されます。
文字のリストにアルファベット文字を追加します。
start-position引数の符号に関係なく、左から右ではなく、右から左に検索します。
文字のリストに制御文字を追加します。
文字のリストに数字を追加します。
アンダースコア文字および英文字(VALIDVARNAME=V7でSAS変数名の先頭に使用できる文字)を文字リストに追加します。
文字のリストにグラフィカル文字を追加します。
文字のリストに水平タブを追加します。
検索時に大文字と小文字を区別しません。
文字のリストにない文字を検索します。この修飾子を指定しないと、FINDCは文字のリストにある文字を検索します。この修飾子は、vまたはV修飾子と同じ機能を持っています。
小文字を文字リストに追加します。
文字のリストに数字、アンダースコアおよび英文字(VALIDVARNAME=V7を使用したSAS変数名内に表示可能な文字)を追加します。
charlist引数およびmodifier引数を1回だけ処理します。FINDC関数の呼び出し時毎には処理されません。DATAステップ(WHERE句を除く)またはSQLプロシジャでO修飾子を使用すると、character-list引数とmodifier引数が変更されないループ内でFINDCを呼び出すとき、より迅速に実行できます。
文字のリストに句読点を追加します。
文字のリストに空白文字(空白、水平タブ、垂直タブ、キャリッジリターン、ラインフィード、フォームフィード)を追加します。
string引数とcharacter-list引数から末尾の空白を取り除きます。
大文字を文字リストに追加します。
文字のリストにない文字を検索します。この修飾子を指定しないと、FINDCは文字のリストにある文字を検索します。この修飾子は、kまたはK修飾子と同じ機能を持っています。
印刷可能文字を文字リストに追加します。
文字のリストに16進文字を追加します。
ヒント | modifierが定数の場合、引用符で囲みます。一組の引用符で複数の定数を指定します。modifierを変数または式として表すこともできます。 |
data _null_; string='Hi, ho!'; charlist='hi'; j=0; do until (j=0); j=findc(string, charlist, j+1); if j=0 then put +3 "That's all"; else do; c=substr(string, j, 1); put +3 j= c=; end; end; run;
j=2 c=i j=5 c=h That's all
data _null_; string='Hi, ho!'; charlist='ho'; j=0; do until (j=0); j=findc(string, charlist, j+1, "i"); if j=0 then put +3 "That's all"; else do; c=substr(string, j, 1); put +3 j= c=; end; end; run;
j=1 c=H j=5 c=h j=6 c=o That's all
data _null_; string='Hi, ho!'; charlist='hi'; j=0; do until (j=0); j=findc(string, charlist, "k", j+1); if j=0 then put +3 "That's all"; else do; c=substr(string, j, 1); put +3 j= c=; end; end; run;
j=1 c=H j=3 c=, j=4 c= j=6 c=o j=7 c=!That's all
data _null_; whereishi=0; do until(whereishi=0); whereishi=findc('Hi there, Ian!', 'hi ', whereishi+1); if whereishi=0 then put “The End”; else do; whatfound=substr('Hi there, Ian!', whereishi,1); put whereishi= whatfound=; end; end; run;
whereishi=2 whatfound=i whereishi=3 whatfound= whereishi=5 whatfound=h whereishi=10 whatfound= The End
data _null_; whereishi_i=0; do until(whereishi_i=0); variable1='Hi there, Ian!'; variable2='hi'; variable3='i'; whereishi_i=findc(variable1, variable2, variable3, whereishi_i+1); if whereishi_i=0 then put "The End"; else do; whatfound=substr(variable1, whereishi_i, 1); put whereishi_i= whatfound=; end; end; run;
whereishi_i=1 whatfound=H whereishi_i=2 whatfound=i whereishi_i=5 whatfound=h whereishi_i=11 whatfound=I The End
data _null_; whereishi_t=0; do until(whereishi_t=0); expression1='Hi there, '||'Ian!'; expression2=kscan('bye or hi', 3)||' '; expression3=trim('t '); whereishi_t=findc(expression1, expression2, expression3, whereishi_t+1); if whereishi_t=0 then put "The End"; else do; whatfound=substr(expression1, whereishi_t,1); put whereishi_t= whatfound=; end; end; run;
whereishi_t=2 whatfound=i whereishi_t=5 whatfound=h The End
data _null_; whereishi_iv=0; do until(whereishi_iv=0); xyz='Hi there, Ian!'; whereishi_iv=findc(xyz, 'hi', whereishi_iv+1, 'iv'); if whereishi_iv=0 then put "The End"; else do; whatfound=substr(xyz, whereishi_iv,1); put whereishi_iv= whatfound=; end; end; run;
whereishi_iv=3 whatfound= whereishi_iv=4 whatfound=t whereishi_iv=6 whatfound=e whereishi_iv=7 whatfound=r whereishi_iv=8 whatfound=e whereishi_iv=9 whatfound=, whereishi_iv=10 whatfound= whereishi_iv=12 whatfound=a whereishi_iv=13 whatfound=n whereishi_iv=14 whatfound=!The End