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

  • 相关阅读:
    IPC总结学习
    机器学习中的范数规则
    机器学习的几个误区-转载
    来几道大数据的面试题吧
    海量数据随机抽样问题(蓄水池问题)
    字符串类算法题目总结
    RPC学习
    如何做出健壮的系统设计
    关于bind函数和connect函数的测试结论
    [置顶] Codeforces Round #197 (Div. 2)(完全)
  • 原文地址:https://www.cnblogs.com/huangbiquan/p/8007588.html
Copyright © 2020-2023  润新知