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. python——re模块

    python--re模块 一 正则表达式的作用 1.给字符串进行模糊匹配, 2.对象就是字符串 二 字符匹配(普通字符.元字符) 普通字符:数字字符和英文字母和自身匹配 2.元字符:. ^ $ * + ...

  2. github生成SSH公钥

    ssh-keygen -t rsa -C "your_email@youremail.com" 然后输入github上的密码 Enter passphrase (empty for ...

  3. Spring(二):Spring框架&Hello Spring

    Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架. Spring 框架 ...

  4. 初学Java Web(7)——文件的上传和下载

    文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...

  5. hdu1728 逃离迷宫---转弯次数不超过k+BFS

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1728 题目大意: 给你一幅图,给出起点终点和最大转弯次数,判断是否能从起点到终点.'*'表示障碍物. ...

  6. 解决:HTTP 错误 404.0 - Not Found.您要找的资源已被删除、已更名或暂时不可用。(记录帖)

    在IIS 上发布web程序时报错,HTTP 错误 404.0 - Not Found.您要找的资源已被删除.已更名或暂时不可用.在网上找了很多资料依然没有解决,后来问了一下同事,他一分钟就帮我搞定了 ...

  7. PHP观察者模式与Yii2.0事件

    1.先看PHP观察者模式的实现: 想要使用事件.必须实现事件的基类.统一的addObserver和trigger方法 定义统一接口.所有的观察者都要实现此接口 //事件的基类 abstract cla ...

  8. [HAOI 2012]音量调节

    Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...

  9. [BeiJing2011]元素

    Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔 法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石. 一般地,矿石越多则法力 ...

  10. bzoj 5286: [Hnoi2018]转盘

    Description Solution 首先注意到一个点不会走两次,只会有停下来等待的情况,把序列倍长 那么如果枚举一个起点\(i\),答案就是 \(min(max(T[j]+n-(j-i)-1)) ...