SAS:字符串常用函数简介

常用的字符串操作主要有查找、替换、连接、去除固定字符等,以下是常见的一些字符串函数

 

函数 功能
SCAN 根据名称查找子串
SUBSTR 根据位置查找/替换子串
LEFT/RIGHT 字符串处理:空格处理
TRIM 字符串处理:空格去除
CATX和|| 字符串连接
INDEX/FIND 返回子串位置
UPCASE/LOWCASE/PROPCASE 大小写转换
TRANWRD 根据名称替换子串
COMPRESS 从字符串删除给定的字符
COMPBL 字符串处理:空格去除

 

SCAN

查找并返回字符串中的第n个单词,调用方法SCAN(stringcount <, character-list <, modifier>>) ,前三个参数分别表示待查找的语句,n,分割符。 第4个modifier可取的值比较多,比如i表示忽略大小写。更多的说明需要参考帮忙文档

说明:

 如果n超过单词个数,返回空白

 如果n为负值,则从右往左查找

 如果不指定分割符,则默认的分割符有好多,包括blank ! $ % & ( ) * + , - . / ; < ^ | 

 如果指定的分割符只有一个,那就是这个分割符

 如果指定的分割符有多个,那分割符是其中任意一个。

 

SUBSTR

作用1: 查找返回字符串中第n位字符开始的,长度为length的子串,方法<variable=>SUBSTR(stringposition <, length>),如果省略了length参数,则返回第n位开始的所有字符。

作用2:子字符串替换,如果SUBSTR在赋值运算符的左边,那就是要替换原字符串中的子串,使用方法为SUBSTR(variableposition <, length>)=characters-to-replace, 例如SUBSTR(Name,1,4)='miao';

 

LEFT和RIGHT

LEFT将字符串开头的空白挪到最右边,即左对齐。 RIGHT将字符串结尾的空白挪到最左边。这两个函数都只需要一个参数,使用方法:LEFT(argument) 和 RIGHT(argument)。(注:挪完之后的字符串长度不变)

 

连接符

可以使用||或者!!或者¦¦作为连接符来连接字符串

 

TRIM

去掉字符串尾部的空白,如果想要去掉所有的空白,可以结合LEFT使用,比如trim(left(str1)),这种情况下left函数先将str1开头的空白挪到尾部,然后trim函数去掉了尾部的空白。

 

CATX

字符串连接,去掉所有字符串开头和结尾的空白,并使用给定的分割符连接它们,用法 CATX(delimiteritem-1 <, ... item-n>)。它可以代替trim+left+||的组合,比如 trim(left(str1)) || ' ,' || trim(left(str2)) || ' ,' || trim(left(str3)) 就可以使用catx(' ,', str1, str2, str3)来代替。

 

INDEX

查找并返回子串第一次出现的位置,如果未出现,则返回0. 使用方法:INDEX(sourceexcerpt)。这个不但可以查找子串位置,更常用的场景是判断是否包含了子串,比如 where index(str, 'qingsong') > 0; 表示只要包含了'qingsong'子串的。

 

FIND

查找并返回子串第一次出现的位置,语法为FIND(stringsubstring <, modifier(s)> <, start-position>)

这个和INDEX类似,不过多了两个参数,modifier是一个字符常量,比如i或者I表示查找的时候忽略大小写, t/T表示trim掉结尾的空白。  start-position表示从哪个位置开始找。

 

UPCASE和LOWCASE

大小写转换,前者将字符串中的字符转换为大写,后者转换为小写

 

PROPCASE

将字符串转换为适当的大小写(所有单词转换为小写,然后每个单词的第一个字符转换为大写),用法 PROPCASE(argument <, delimiters>)

 

TRANWRD

替换或者去掉一个字符串中所有出现的某个子串,用法 TRANWRD(sourcetargetreplacement)

其中source为原串,target为待替换的子串,replacement为替换后的子串。

 

COMPBL

将两个或者两个以上的空格压缩为一个空格,是COMPRESS BLANK的简称,用法COMPBL(source)

 

COMPRESS

去除字符串中的某些字符,用法 COMPRESS(source ,< characters> ,< modifier(s)>)

第2个参数是待去除的字符集,比如要去掉某个字符串中的数字,可以指定第2个参数为'0123456789'

如果只有一个参数,那么所有的空格会被去掉。

 

 

 

 

你可能感兴趣的:(办公)