compress函数用法详解
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函数用法详解的更多相关文章
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- eval()函数用法详解
eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数, ...
- 转载 LayoutInflater的inflate函数用法详解
http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...
- delphi中Application.MessageBox函数用法详解
delphi中Application.MessageBox函数用法详解 Application.MessageBox是TApplication的成员函数,声明如下:functionTApplicati ...
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- python开发笔记之zip()函数用法详解
今天分享一篇关于python下的zip()函数用法. zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原 ...
- thinkPHP内置字符串截取msubstr函数用法详解
作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...
随机推荐
- JavaScript初探之字符串与数组
一直在研究JS以至于忘记跟新博客... 字符串:// str.charAt(x); //获取下标为x的字符// str.indexOf(",",1); //获取",&qu ...
- iframe交互(一)父页面自动高度
//父页面源码 <body style="border:1px solid red;width:200px;height:500px;" onload="IFram ...
- jQuery滚动指定位置
$(document).ready(function() { $("#scroll").click(function() { $('html, body').animate({ s ...
- [NOIp 2012]国王游戏
Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国 ...
- [PA 2014]Kuglarz
Description 魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品.花费c_ij元,魔术师就会告诉你杯子i,i+ ...
- [SCOI 2016]背单词
Description Lweb 面对如山的英语单词,陷入了深深的沉思,“我怎么样才能快点学完,然后去玩三国杀呢?”.这时候睿智 的凤老师从远处飘来,他送给了 Lweb 一本计划册和一大缸泡椒,他的计 ...
- [HNOI2014]江南乐
Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一 ...
- CSAPP-程序优化
代码移动: 如果一个表达式总是得到同样的结果,最好把它移动到循环外面,这样只需要计算一次.编译器有时候可以自动完成,比如说使用 -O1 优化.一个例子: void set_row(double *a, ...
- 2015多校联赛 ——HDU5288(数学)
OO’s Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- [hdu5608]function
题意:$\sum_{d|n}f(d)=n^{2}-3n+2$,求$\sum_{i=1}^{n}f(i)\mod 10^{9}+7$ , $n \leqslant 10^{9}$ $\left( T \ ...