SAS 字串常用函式簡介

2021-10-08 20:56:18 字數 2444 閱讀 8228

常用的字串操作主要有查詢、替換、連線、去除固定字元等,以下是常見的一些字串函式

函式功能

scan

根據名稱查詢子串

substr

根據位置查詢/替換子串

left/right

字串處理:空格處理

trim

字串處理:空格去除

catx和||

字串連線

index/find

返回子串位置

upcase/lowcase/propcase

大小寫轉換

tranwrd

根據名稱替換子串

compress

從字串刪除給定的字元

compbl

字串處理:空格去除

查詢並返回字串中的第n個單詞,呼叫方法scan(string

, count

<, character-list

<, modifier

說明:如果n超過單詞個數,返回空白

如果n為負值,則從右往左查詢

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

如果指定的分割符只有乙個,那就是這個分割符

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

作用1: 查詢返回字串中第n位字元開始的,長度為length的子串,方法=>substr(string

, position

<, length

>),如果省略了length引數,則返回第n位開始的所有字元。

作用2:子字串替換,如果substr在賦值運算子的左邊,那就是要替換原字串中的子串,使用方法為substr(variable

, position

<, length

>)=characters-to-replace, 例如substr(name,1,4)='miao';

left將字串開頭的空白挪到最右邊,即左對齊。 right將字串結尾的空白挪到最左邊。這兩個函式都只需要乙個引數,使用方法:left(argument

) 和 right(argument

)。(注:挪完之後的字串長度不變)

可以使用||或者!!或者¦¦作為連線符來連線字串

去掉字串尾部的空白,如果想要去掉所有的空白,可以結合left使用,比如trim(left(str1)),這種情況下left函式先將str1開頭的空白挪到尾部,然後trim函式去掉了尾部的空白。

字串連線,去掉所有字串開頭和結尾的空白,並使用給定的分割符連線它們,用法 catx(delimiter

, item-1

<, ... item-n

>)。它可以代替trim+left+||的組合,比如 trim(left(str1)) || ' ,' || trim(left(str2)) || ' ,' || trim(left(str3)) 就可以使用catx(' ,', str1, str2, str3)來代替。

查詢並返回子串第一次出現的位置,如果未出現,則返回0. 使用方法:index(source

, excerpt

)。這個不但可以查詢子串位置,更常用的場景是判斷是否包含了子串,比如 where index(str, 'qingsong') > 0; 表示只要包含了'qingsong'子串的。

查詢並返回子串第一次出現的位置,語法為find(string

, substring

<, modifier(s)

> <, start-position

>)

這個和index類似,不過多了兩個引數,modifier

是乙個字元常量,比如i或者i表示查詢的時候忽略大小寫, t/t表示trim掉結尾的空白。  start-position

表示從哪個位置開始找。

大小寫轉換,前者將字串中的字元轉換為大寫,後者轉換為小寫

將字串轉換為適當的大小寫(所有單詞轉換為小寫,然後每個單詞的第乙個字元轉換為大寫),用法 propcase(argument

<, delimiters

>)

替換或者去掉乙個字串中所有出現的某個子串,用法 tranwrd(source

, target

, replacement

)其中source為原串,target為待替換的子串,replacement為替換後的子串。

將兩個或者兩個以上的空格壓縮為乙個空格,是compress blank的簡稱,用法compbl(source

)去除字串中的某些字元,用法 compress(source

,< characters

> ,< modifier(s)

>)

第2個引數是待去除的字符集,比如要去掉某個字串中的數字,可以指定第2個引數為'0123456789'

如果只有乙個引數,那麼所有的空格會被去掉。

SAS常用日期和時間函式簡介

sas常用日期和時間函式有 mdy m,d,yr 生成yr年m月d日的sas日期值 year date 由sas日期值date得到年 month date 由sas日期值date得到月 day date 由sas日期值date得到日 weekday date 由sas日期值date得到星期幾 qtr...

字串常用函式

1.查詢字串位置的函式 不適合用於漢子查詢 strpos str,find,int 查詢find在str中第一次出現的位置。對大小寫敏感 從int位置開始往後查詢。如果沒有找到返回flase strrpos str,find,int 查詢find在str中最後一次出現的位置。對大小敏感 從int位置...

字串常用函式

提取子串和字串連線 題取子串的函式是 substr 形式如下 s.substr 返回s的全部內容 s.substr 11 從索引11往後的子串 s.substr 5,6 從索引5開始6個字元 把兩個字串結合起來的函式是 輸入輸出操作 1 從輸入流讀取乙個string。2 把乙個string寫入輸出流...