compress函数用法分析
发布时间:2021-12-07 13:59:47 所属栏目:教程 来源:互联网
导读:compress函数: 主要用来删除字符串中的特定字符. 1.compress函数的基本形式 compress(source, chars, modifiers) Arguments source: 指定一个字符串来源 chars: 指定要删除或者保留的字符列表,需用引号 modifiers: 指定修饰符,不区分大小写,用来控制compre
|
compress函数: 主要用来删除字符串中的特定字符. 1.compress函数的基本形式 compress(<source><, chars><, modifiers>) Arguments source: 指定一个字符串来源 chars: 指定要删除或者保留的字符列表,需用引号 modifiers: 指定修饰符,不区分大小写,用来控制compress 函数。 modifiers指定一个修饰符,函数的具体功能。如: a 增加(A - Z, a - z)到初始字符里(chars)。 d 增加数字到初始字符里(chars)。 f 增加下划线和字母 (A - Z, a - z) 到初始字符里(chars)。 g 增加图形字符到初始字符里(chars)。 k 不移除初始字符(chars)而是返回这些字符。 l 增加小写字母(a - z)。 n 增加数字、下划线和字母(A - Z, a - z)。 p 增加标点符号。 s 增加空格, 包括空格、水平制表符、垂直制表符、回车符、换行符和换页符。 t 剪掉尾部空格。 u 增加大写字母(A - Z)。 w 增加可印刷的字符。 X 增加十六进制字符 2.compress函数应用举例 例1.删除空格:可以直接省去第二和第三个Arguments,也可以明确将空格加入到字符串列表中。 data _null_; str='Ab cd EF-123-456'; str1=compress(str); str2=compress(str," "); put str1= str2=; run; 例2.使用修饰符删除小写字母: 将修饰符设定为"l",代表lowcase,即将所有的小写字母加入到要删除的字符列表中; 如不用修饰符"l",也可以直接把所有a-z的小写字母列入要删除的字符串列表当中,效果一样; 本例可以将所有小写字母和大写的"E"从指定的字符串中删除。 data _null_; str='Ab cd EF-123-456'; str1=compress(str,'E','l'); str2=compress(str,"abcdefghijklmnopqrstuvwxyzE"); put str1= str2=; run; 例3. 保留字符:只需将"K"或"k"写入修饰符; 保留数字:只需将"D"或"d"写入修饰符,或者在字符串列表中加入所有数字。 本例为保留所有数字和"EF"中的字符。 data _null_; str='Ab cd EF-123-456'; str1=compress(str,'EF','kd'); str2=compress(str,"EF1234567890",'k'); put str1= str2=; run; 补充: 1.只有source,移除空格。 2.只有source,chars时,从source中移除chars。 3.source,chars,modifiers都有时,modifiers中的K决定保留还是移除。 无K时,移除chars加上modifiers指定的。 例如: 这两个都是移除数字: compress(source, "1234567890"); compress(source, , "d"); 这两个是移除数字和加减号: compress(source, "1234567890+-"); compress(source, "+-", "d"); 例1:移除日期中的/ data _null_; a='2017/04/20';; b=compress(a,'/'); put b; run; log窗口的输出结果为: 20170420 例2:移除大写字母和- data _null_; x='a 123-456 B-2'; y=compress(x,'-','u'); put y; run; log窗口的输出结果为: a 123456 2 例3:移除Tab data _null_; x='1 0 0 8 6'; y=compress(x,,'s'); put y; run; log窗口的输出结果为: 10086 特殊用法: compress(source,'k'); 删除字符k compress(source,'d'); 删除字符d compress(source,,'d'); 删除数字 compress(source,'kd'); 删除字符kd compress(source,,'kd'); 只保留数字 compress(source,'KD'); 输出原始字符串 附:常用的修饰符及其意义 a/A 所有拉丁字母,包括 a-z A-Z l/L 所有小写拉丁字母 u/U 所有大写拉丁字母 k/K 保留字符 d/D 所有数字 f/F 下划线和所有拉丁字母 n/N 下划线,数字和所有拉丁字母 i/G 忽略要删除或保留字符的大小写 s/S 定位符,如空格、tab等 t/T 去掉第一和第二个arguments里的尾部空格 ![]() (编辑:玉林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


