前のページ|次のページ

NOTFIRST関数

VALIDVARNAME=V7のSAS変数名として無効な開始文字を文字列から検索し、最初に検索された文字の位置を返します。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル2に準拠しており、SBCS、DBCSおよびMBCS(UTF8)での使用目的で設計されています。

構文

NOTFIRST(string <, start>)

必須引数

string

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

オプション引数

start

検索の開始位置と検索方向を指定する整数値を使用する任意の数値定数、変数または式です。

詳細

NOTFIRST関数は、TRANTAB、ENCODINGまたはLOCALEシステムオプションに依存しません。
NOTFIRST関数は、VALIDVARNAME=V7のSAS変数名の開始文字として有効でない文字のうち最初に出現する文字を文字列から検索します。これらの文字は、アンダースコア(_)、大文字または小文字の英文字以外の文字です。対象の文字が検出されると、NOTFIRSTは文字列内の該当文字の位置を返します。対象の文字が検出されない場合、NOTFIRSTは値0を返します。
引数を1つのみ使用すると、NOTFIRSTは文字列の先頭から検索を開始します。2つの引数を使用する場合、第2引数startの絶対値で検索の開始位置を指定します。検索方向は次のように決まります。
  • startの値が正の場合、検索は右方向に進みます。
  • startの値が負の場合、検索は左方向に進みます。
  • startの値が文字列の負の長さよりも小さい場合、文字列の末尾から検索が開始されます。
次のいずれかの条件が満たされると、NOTFIRSTは値0を返します。
  • 検索文字が見つからない。
  • startの値が文字列の長さよりも大きい。
  • startの値が0になっている。

比較

NOTFIRST関数は、VALIDVARNAME=V7のSAS変数名の開始文字として有効でない文字のうち最初に出現する文字を文字列から検索します。ANYFIRST関数は、VALIDVARNAME=V7のSAS変数名の開始文字として有効な文字のうち最初に出現する文字を文字列から検索します。

次の例では、NOTFIRST関数を使用してVALIDVARNAME=V7のSAS変数名の開始文字として有効でない文字を文字列から検索します。
data _null_;    
   string='Next = _n_ + 12E3;';  
   j=0;  
   do until(j=0);  
      j=notfirst(string, 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=5 c= j=6 c== j=7 c= j=11 c= j=12 c=+ j=13 c= j=14 c=1 j=15 c=2 j=17 c=3 j=18 c=; That's all

関連項目:

関数:
前のページ|次のページ|ページの先頭へ