find函数用法详解

语法:find (string, sub3tring<, modifiers, startpos>),返回substring首次在string中出现的位置,若未找到,则返回0。
其中:
modifier可以是
i|I : 不区分大小写的搜索
t|T : 忽略string和substring中的末尾空格
startpos指定从string的何处开始搜索substring,正值从左至右,负值反向。

data test;
str='She seashells.SHE, she does';
strl=find(str,'she');          /*区分大小写,从str第1个字符幵始査找,返回8*/
str2=find(str,'she','i');      /*不区分大小写,从str第1个字符开始査找,返回1*/
str3=find(str,'she ');         /*区分大小写,从str第1个字符开始査找she+空格,返回20*/
str4=find(str,'she ','t');     /*区分大小写,从3tr第1个字符开始忽珞空格后査找she.返回8*/
str5=find(str,'she',12);       /*区分大小写,从str第12个字符开始査找She.返回20*/
str6=find(str,'she',-7);       /*区分大小写,从str第7个字符往左査找she,找不到返回0*/
str7=find(str,'she','i',-7);   /*不区分大小写,从str第7个字符往左査找she,找到返回1*/    
str8=find(str,'she',-17);      /*区分大小写,从str第17个字符往左査找she,找到返回8*/
str9=find(str,'she','i',-17);  /*不区分大小写,从str第17个字符往左査找she,找到返回15*/
run;
proc print;
run;

find与index的区别:
index(string1,string2); 在string1中搜索string2,返回string2出现的位置;一般使用index(string1,string2)>0即可说明string1中含有string2。
find(string,substring<,modifiers,startpos>);在变量string中搜索字符串string2;返回该字符串第一次出现的位置,未找到则返回0。