1.SCAN函數(shù):從字符表達式s中搜取給定的n個單詞
WORD = SCAN(source,n,delimiters );
(1)如果n為負數(shù),則SCAN選擇字符串中從字符串末尾開始的單詞。如果|n|大于字符串中的字?jǐn)?shù),則SCAN返回一個空白值。
(2)Delimiters可以是Blank . < ( + | & ! $ * ) ; - / , % ^
/ SCAN函數(shù)應(yīng)用舉例 /
data test1;
name='john smith';
firstname = scan(name,1);
lastname = scan(name,2);
a='d:\\risk1\\uscc\\datapull.sas';
fn=scan(a,-1,'');
run;
/ 結(jié)果如下: /
2.INDEX函數(shù):搜索字符參數(shù)
如果找到字符參數(shù),則返回它在字符值中的位置,如果找不到,則返回0。
INDEX = INDEX(source, except);
Source: 待查找的字符變量.
Except: 要查找的字符參數(shù)
/ INDEX函數(shù)應(yīng)用舉例 /
data test2;
length reason $100;
line = 'ERROR 180-322: Statement is not valid or it is out of proper order.';
index = index(line, 'ERROR');
put 'index= ' index;
if index > 0 then
put line;
index2 = index(line, ':');
put 'index2= ' index2;
if index2 > 0 then
reason = substr(line, index2);
put'REASON' reason;
run;
/ 結(jié)果如下: /
補充:大小寫設(shè)置
轉(zhuǎn)變所有的字母:
varu=upcase(argument);
varl=lowcase(argument);
var=propcase(argument)首字母大寫;
3.FIND函數(shù):在您指定的字符串中搜索特定的字符子字符串 。
FIND(string,substring<,modifiers><,startpos>)
string是要在其中搜索的字符串或字符變量名稱,
substring是要在字符串中搜索的字符串。返回substring首次在string中出現(xiàn)的位置,若未找到,則返回0。
startpos指定從 string的何處開始搜索substring,正值從左至右,負值反向。
Modifier=I,搜索時忽略大小寫,默認(rèn)區(qū)分大小寫。
/ FIND函數(shù)應(yīng)用舉例 /
data test3;
string1='1234567890';
pos1=find(string1, '3');
put 'pos1=' pos1;
string2='c:\\project1\\analysis\\distribution.sas';
pos2=find(string2, '\\', -100);
put 'pos2=' pos2;
string3='The search is Case Sensitive';
pos3=find(string3, 'case');
put 'pos3=' pos3;
string4='The search is not Case Sensitive';
pos4=find(string4, 'case', 'i');
put 'pos4=' pos4;
string5=upcase(string4);/*將字符串轉(zhuǎn)換為大寫*/
pos5=index(string5,'CASE');
put 'pos5=' pos5;
run;
/ 結(jié)果如下: /
然而兩類Function之間不同的是:FIND類Function有一些INDEX類Function所不具有的功能,包括:
(1)FIND類可以檢索所檢索目標(biāo)的”首次“出現(xiàn)位置;
(2)FIND類可以指定檢索的方向(如:自左向右,自右向左);
(3) FIND類可以忽略字符串的大小寫或末尾的空格。
4.COMPRESS函數(shù):用以體剔除或保留特定字符
COMPRESS(string<,chars ><,modifiers>)
String指定一個要移除字符的源字符串,
Chars指定一欄初始字符,默認(rèn)它是從string里移除的
Modifiers指定一個修飾語,函數(shù)的具體功能。如:
/ COMPRESS函數(shù)應(yīng)用舉例 /
data test4;
string1=" Sunlights";
new1=compress(string1);
new2=compress(string1,'S');
new3=compress(string1,"S","K");/*從源字符串中返回字符"S"*/
new4=compress(string1,"s","U");/*從源字符串中將字符"s"及大寫字母剔除*/
run;
/ 結(jié)果如下: /
補充:
1.只有string,移除空格。
2.只有string,chars時,從source中移除chars。
- string,chars,modifiers都有時,modifiers中的K決定保留還是移除。無K時,移除chars加上modifiers指定的。
5. CAT函數(shù):用以拼接字符串
CAT(string1, ... , stringn):連接字符串不去除空格
CATT(string1, ... , stringn):去除尾部空格連接
CATS(string1, ... , stringn):移除前后空格連接 trim刪除右側(cè)空格
CATX(separator, string1, ... , stringn):移除首位空格,插入特定字符連接
/*代碼相當(dāng)于: */
CAT(OF X1-X3) = X1||X2||X3
CATT(OF X1-X3)= TRIM(X1)||TRIM(X2)||TRIM(X3)
CATS(OF X1-X3)= TRIM(LEFT(X1))||TRIM(LEFT(X2))||TRIM(LEFT(X3))
CATX(SP, OF X1-X3)=TRIM(LEFT(X1))||SP||TRIM(LEFT(X2))||SP||
TRIM(LEFT(X3))
/ CAT函數(shù)應(yīng)用舉例 /
data test5;
length a1 a3 $10 a2 a4 8;
a1='aaa';
a2=1234;
a3='bbb';
a4=5678;
line1=cat(of a1-a4);
put line1;
line2=catx(',',of a1-a4);
put line2;
run;
/ 結(jié)果如下 /
-
字符串
+關(guān)注
關(guān)注
1文章
579瀏覽量
20537 -
VaR
+關(guān)注
關(guān)注
0文章
39瀏覽量
11354 -
Scan
+關(guān)注
關(guān)注
0文章
12瀏覽量
3561
發(fā)布評論請先 登錄
相關(guān)推薦
評論