zoukankan      html  css  js  c++  java
  • SAS 字符串常用函数

    总结多个字符串常用函数

    1.Substr(s,p,n)

    【功能】:字符串的替换和字符串的提取

    【语法】:

    1.(right of =) Function,提取字符:Substr(s,p,n)从字符串s中的第p个字符开始提取n个字符的子串。
    2 (left of =) Function,字符替换:Substr(s,p,n)=characters-to-replace,从变量s的第p个字符开始替换n个字符

    【注意】:

    1. 必须是从字符变量中提取,对数值变量不起作用,必须转换为字符变量,如果是数字变量,在调用substr函数时会自动把数字变量转为字符变量,不过需要注意的是转化为的字符变量采用的是best12.格式。
    2.n的长度不能超过p后面的长度,例如s=alibaba,b=Substr(s,5,5)系统会有提示。
    3.如果缺失n的话,SAS则会提取p后面全部字符,如果是替换的话,则不能缺失n。

    【例子】

    data _null_;
    x='1ad23jia4';
    y=substr(x,4,2);
    substr(x,3,1)='9';
    put y= x=;
    run;

    结果:y=23 x=1a923jia4

    2.Tranwrd

    【功能】:将字符串中的某些字符串换为其他字符

    【语法】:tranwrd(s,a,b)将字符串s中a表示的字符串换为b表示的字符串

    【注意】:替换字符串区分大小写

    【例子】:data _null_;
    x='1ad23jia43';
    y=tranwrd(x,'23','zz');
    put y=;
    run;

    结果:y=1adzzjia43

    3.Tanslate

    [功能]:更换字符串的排序

    [语法】:TRANSLATE( to, s, from): 将字符串s从from的排序转换成to的排序

    【例子】:

    data _null_;
    x='1ad23';
    y=translate('54321',x,'12345');
    put y=;
    run;

    结果:y=32da1

    4.Compress
    【功能】保留或者删除字符串

    【语法】COMPRESS(<source>,<chars>,<modifiers >)

    source 指定一个要被移除字符的源字符串。
    chars  指定一栏初始字符,默认它是要从source里移除的。
    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 增加十六进制字符

    【注意】:

    1. 只有source,移除空格。

    2. 只有source,chars时,从source中移除chars。

    3. source ,chars,modifiers都有时,modifiers  K决定保留还是移除。无K时,移除chars加上modifiers指定的。

    【例子】:

    data _null_;
    x="ABabISEFjdABCD";
    y=compress(x,"A","l");
    put y=;
    run;

    结果:y=BISEFBCD
    5.CAT

    【功能】:拼接字符串

    【语法】:

    CAT(A,B): 拼接字符串A和B并保留首尾全部空格(同A||B)
    CATS(A,B): 拼接字符串A和B并去掉首尾全部空格(同strip(A)||strip(B))
    CATX("x",A,B): 拼接字符串A和B并去掉首尾全部空格,并且在字符串之间加上一个指定的字符串"x"(同strip(A)||"x"||strip(B))

    CATT(A,B): 拼接字符串A和B并去掉各字符串尾部空格(同trim(A)||trim(B))

    【例子】:

    data _null_;
    b=' l o v e ';
    c=' S A S ';
    s1=cat(b,c);
    s2=cats(b,c);
    s3=catx('_',b,c);
    s4=catt('I',b,c);
    put s1=/s2=/s3=/s4=;
    run;

    结果:s1=l o v e S A S

    s2=l o v eS A S

    s3=l o v e_S A S

    s4=I l o v e S A S

    6.find

    [功能]字符串中的某段字符在字符中的位置

    【语法】find(<source>,<chars>,<modeifers>,<数字>)从字符串中第“数字”开始查找字符串<chars>的位置,<modeifier>取i表示不区分大小写

    【注意】不管起始位置是多少,返回的位置数值始终是在源字符串中的位置。

    【例子】
    data _null_;
    Text='CHUSINA, us, US, Denmark';
    X1=find(Text,'US','i',5);
    X2=find(Text,'US',5);
    X3=find(Text,'US');
    PUT X1= X2= X3=;
    run;

    结果是:X1=10 X2=14 X3=3

    7.INDEX 

    [功能]返回字符串中某个字符或字符串的位置

    【例子】 data _null_;
      a = 'ABC.DEF(X=Y)';  
      b = 'X=Y';
      x = index(a,b);  
      put x=;  
     run;

    结果:x=9

    【比对】indexc:指定字符串中寻找想要找的字符中的任意一个首先出现的字符,并返回该字符位置,多个字符之间用逗号隔开。

    例子

     data _null_;
      a = 'ABC.DEF(X=Y)';  
      x1 = indexc(a,'kA','JID');  
      x2 = indexc(a,'ka','JID');  
      put x1= x2=;  
     run;

    结果:x1=1 x2=5

    【注】scan只能搜索CHAR类型,index与indexc不受此限制

    8.删除字符串空格

    trim(string):删除字符串尾部空格

    strip(string):删除字符串首尾空格

    compress(<source>,<char>,<modifiers>):删除指定字符(若不指定字符,则删除source中所有空格)

  • 相关阅读:
    web前端的发展态势
    AngularJs 简单入门
    css代码优化篇
    git提交报错:Please make sure you have the correct access rights and the repository exists.
    Activiti工作流框架学习
    遍历map集合的4种方法
    js设置日期、月份增加减少
    Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    webservice_rest接口_学习笔记
    相互匹配两个list集合+动态匹配${}参数
  • 原文地址:https://www.cnblogs.com/Anni-love-Ferris-wheel/p/7307081.html
Copyright © 2011-2022 走看看