SAS學習筆記66 SAS正則表達式


在SAS里,正則表達函數以PRX(Perl Regular Expression)開頭

PRXMATCH()

這個函數的作用是:看regular-expression在string中的位置

"/SA/"這個雙引號是SAS的語法,但里面的內容是標准的Perl正則表達式,那個斜杠 / 是默認的Perl分隔符。我們可以在兩個斜杠//之間放置一些元字符(metacharacter),來簡化一些很復雜的表達

metacharacter(元字符)

metacharacter用來簡化表達某種意思,比如在word中我們都知道t代表的是制表符,那么在SAS正則表達式中也類似有:

^ 代表一段話的開頭,

$ 代表一段話的結束,

s 代表的是一個空格(space),

i 代表不區分大小寫,

d 匹配任何某1個以上數位

……

他們就是metacharacter

Metacharacter Description Examples
* 將其前字符進行0個或多個匹配

cat* 匹配“cat”,“cats”

c(at)* 匹配"c", "cat", "catatat"

+ 將其前字符進行1個或多個匹配 \d+ 匹配一個或多個數字
? 將其前字符進行0個或1個匹配 hello? 匹配"hell","hello"
. 只匹配一個字符。匹配除"\n"之外的任何單個字符。如果想匹配任意字符[.\n] r.n 匹配"ron","run","ran"
\d 匹配一個數字字符。[0-9] \d\d\d 匹配任何三位數字
\D 匹配一個非數字字符。[^0-9] \D\D 匹配"xx", "ab",%%"
^ 匹配輸入字符串的開始位置 ^cat 匹配"cat","cats"但不匹配"the cat"
$ 匹配輸入字符串的結束位置 cat$ 匹配"the cat"但不匹配"cat in the hat"
[a-z] 表示a-z任意一個字符  
[0-9] 表示0-9任意一個數字  
[0-9a-zA-Z] 表示0-9 a-z A-Z任意一個字符  
[abcd] 表示a 或b 或c 或d  
[1234] 表示1 或2 或3 或4  
[^a-z] 表示匹配除了a-z之外的任意一個字符  
\w 匹配包括下划線的任何單詞字符。[0-9a-zA-Z_]  
\W 匹配任何非單詞字符。[^\w]  
\s 匹配任何空白字符  
\S 匹配任何非空白字符  
\b 匹配一個單詞邊界  
\B 匹配非單詞邊界  
{n} 匹配前面的子表達式n次  
{n,} 匹配前面的子表達式n次或更多次  
{n,m} 匹配前面的子表達式n次或更多次,但不超過m  
x|y 匹配x或y c(a|o)t 匹配"cat","cot"
\

用於匹配某些特殊字符

需要轉義的字符有:

(

)

[

]

{

}

\

.

/

*

+

?

^

$

\d\d\d\) 匹配"123)"

\1 與前面的捕獲緩沖區匹配,稱為回引用 (\d\D\d)\1 匹配“9a99a9”而不是“9a97b7”
 
(.)\1匹配任意兩個重復的字符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM