在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” |
