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里的尾部空格

compress函数用法详解的更多相关文章

  1. SQL中CONVERT()函数用法详解

    SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...

  2. php中setcookie函数用法详解(转)

    php中setcookie函数用法详解:        php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见.        语法:        bool set ...

  3. eval()函数用法详解

    eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数, ...

  4. 转载 LayoutInflater的inflate函数用法详解

    http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...

  5. delphi中Application.MessageBox函数用法详解

    delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...

  6. C语言对文件的操作函数用法详解2

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const  ...

  7. C语言对文件的操作函数用法详解1

    在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...

  8. python开发笔记之zip()函数用法详解

    今天分享一篇关于python下的zip()函数用法. zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原 ...

  9. thinkPHP内置字符串截取msubstr函数用法详解

    作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...

随机推荐

  1. EasyUI easyui-combobox实现数据联动

    实现效果:当用户选择了调查地区以后,只显示当前选择地区的频道,如果没有选择地区,那么频道下拉列表是空的.实现效果,如下

  2. jenkins配置findbugs失败---不要随便忽略警告!一个因为文件所有权引发的血案

    一:背景交代 这两天组长让我这边搭一个持续集成环境.梳理了需求后,因为我们的项目都是maven项目,所以我选择了jenkins+外置maven(区别于直接从jenkins里面安装)的方案.(cento ...

  3. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  4. spark2.1:在RDD[unit].foreach(s=>{})内部调用sparkSession对象抛出NullPointException

    问题代码: val sample_data_combine_result=List( (0,(List(FitModel(4022,1447.92,-8.38983306721434,2.0),Fit ...

  5. hdu1568 Fibonacci---前4位

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1568 题目大意: 求斐波那契数列第i项的前四位.i<1e8 思路: 由于数据范围大,不可能打表 ...

  6. 小技巧-ASP.Net session保存在数据库服务器

    引用博客:http://www.cnblogs.com/lykbk/archive/2013/01/13/hf576856868.html web Form 网页是基于HTTP的,它们没有状态, 这意 ...

  7. 列表&元组的内置方法

    标红为元组可以使用

  8. Python系列之 - 锁(GIL,Lock,Rlock,Event,信号量)

    python 的解释器,有很多种,但市场占有率99.9%的都是基于c语言编写的CPython.  在这个解释器里规定了GIL. In CPython, the global interpreter l ...

  9. Linux下文件权限(一)用户ID和用户组ID

    最近在读<unix环境高级编程>,看到文件权限这里比较糊涂,主要设计多个用户ID和用户组ID,包括下面两个: (1)实际用户ID和实际用户组ID:这一部分表示我们究竟是谁.这两个字段在登录 ...

  10. 使用Swoole测试MySQL在特定SQL下的并发性能

    场景描述 从全文检索或者缓存中获取ID,根据ID查询数据库获取基础信息,进行页面展示 SQL:select * from table where id in(id1,id2,id3...id40) 此 ...