scan函数用法详解

scan函数: scan(s,n,"char")表示从字串string中以char为分隔符提取第n个字串

功能(function):从字符表达式s中搜取给定的n个单词
语法(syntax)
1.scan(s,n) n为正数时,从字符s末尾提取n个字符
2.scan(s,n) n为负数时,从字符s开始提取n个字符
3.scan(s,n<,list-of-delimiters>)
如果指定分隔符,则只会按照该分隔符提取。
如果不指定,则按照常用的分隔符拆分,默认分隔符为:空格 . < ( + & ! $ *) ; ^ - / , % | 等之一或组合

注意事项:
1.如果缺失指定的生成变量的长度,系统默认长度为200.
2.如果|n|=0或大于字符s的长度,则该函数返回空格。

例如:

data a;
arg='ABC.DEF(X=Y)';
word=scan(arg,3);     /*输出X=Y*/
put word;
run;
 
data b;
arg='ABC.DEF(X=Y)';
word=scan(arg,-3);    /*输出ABC*/
put word;
run;
 
data c;
arg='ABC.DEF(X=Y)';
word=scan(arg,-20);    /*输出为空*/
put word;
run;
 
data d;
input str $ & 22.;
a=scan(str,1,' ');
b=scan(str,2,' ');
put a b ;              /*abcd efghijklmn */
cards;
abcd efghijklmn 
;
run;