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. Linux-centos-7.2-64bit 安装配置mysql

    2018-04-12 安装在/usr/local/下,配置文件在/etc/my.ini 1.下载mysql安装包到 /usr/local/software cd /usr/local/software ...

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

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

  3. 给定了经纬度的一张my_latlng表,和一个my_grid表,怎么实现my_latlng表回mygrid中的id?

    场景: 假设我们拥有一个拥有了一系列经纬度的表my_latlng(lat string,lng string)表,还有一张给定的栅格表my_grid(gridid bigint,centerlng d ...

  4. requests+正则表达式提取猫眼电影top100

    #requests+正则表达式提取猫眼电影top100 import requests import re import json from requests.exceptions import Re ...

  5. CentOS 6.8下二级域名及目录的绑定

    二级域名对应目录的绑定: 第一步: 开启mod_rewrite模块,默认是开启的,这里可以查下是否开启 终端输入:vim /etc/httpd/conf/httpd.conf  回车 查看188行:L ...

  6. Spring Cloud学习笔记-005

    服务消费者 之前已经搭建好了微服务中的核心组件——服务注册中心(包括单节点模式和高可用模式).也有了服务提供者,接下来搭建一个服务消费者,它主要完成两个目标,发现服务以及消费服务.其中,服务发现的任务 ...

  7. building a new horizon

    昨天是4月14日,也是我的23岁生日.正好去参加GDG举办的WTM,这次的主题是building a new horizon. 写一下印象深刻的分享者和她们的闪光点. 1.羡辙-从灵感到落地 羡辙是在 ...

  8. Java集合框架之四大接口、常用实现类

    Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...

  9. Java 线程池原理分析

    1.简介 线程池可以简单看做是一组线程的集合,通过使用线程池,我们可以方便的复用线程,避免了频繁创建和销毁线程所带来的开销.在应用上,线程池可应用在后端相关服务中.比如 Web 服务器,数据库服务器等 ...

  10. [LeetCode] Redundant Connection II 冗余的连接之二

    In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...