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/MySQL(三、pymysql使用)

    Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...

  2. tar磁带归档

    一:压缩.解压 1.compress/uncompress/zcat -d:解压 -c:输出到终端,不删除原文件 -v:显示详细信息 2.gzip/ungzip/zcat -d:解压 -c:将压缩或解 ...

  3. SpringMVC(九):SpringMVC 处理输出模型数据之ModelAndView

    Spring MVC提供了以下几种途径输出模型数据: 1)ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据: 2)Map及Model:处理方法 ...

  4. hdu1052 Tian Ji -- The Horse Racing---田忌赛马贪心

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1052 题目大意: 田忌和齐王各有N匹马,判断怎样比赛,使田忌净胜场数最多. 思路: 一开始贪心出错, ...

  5. [论文阅读] Deep Residual Learning for Image Recognition(ResNet)

    ResNet网络,本文获得2016 CVPR best paper,获得了ILSVRC2015的分类任务第一名. 本篇文章解决了深度神经网络中产生的退化问题(degradation problem). ...

  6. else语句的搭配

    1.else语句搭配if 要么怎样,要么怎样 2.else语句搭配for和while 干完循环之后执行else,干不完或者break就不执行 3.else与异常处理 没有问题的话就执行else吧

  7. 数十种TensorFlow实现案例汇集:代码+笔记(转)

    转:https://www.jiqizhixin.com/articles/30dc6dd9-39cd-406b-9f9e-041f5cbf1d14 这是使用 TensorFlow 实现流行的机器学习 ...

  8. sqlserver数据库导入Mysql数据库问题

    近来遇到一个问题,之前的项目用的是SQLServer数据库,但是现在要换成MySQL数据库,所有整理了一些数据导入的步骤,供需要的人参考! 第一步: 第二步: 第三步: 第四步: 第五步: 第六步: ...

  9. [LeetCode] Decode Ways II 解码方法之二

    A message containing letters from A-Z is being encoded to numbers using the following mapping way: ' ...

  10. [LeetCode] Find the Closest Palindrome 寻找最近的回文串

    Given an integer n, find the closest integer (not including itself), which is a palindrome. The 'clo ...