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匹配任意两个重复的字符
posted @ 2020-01-17 14:08  特殊的苹果  阅读(8443)  评论(0编辑  收藏  举报
动态线条
动态线条end