SAS - 正则表达式
正则表达式(Regular Expression)是一种文本模式,可用于文本的匹配、查找和替换。Base SAS 内置了正则表达式的实现,并提供了一系列 PRX 函数及 CALL 子程序,便于对文本进行更为灵活的处理。
正则表达式的结构
正则表达式由普通字符和元字符组成。元字符用于匹配符合特定规则的字符集合,例如:数字、字母、标点符号等字符集合。
元字符又分为:基本元字符、定位符、限定符等等。
基本元字符
常用的基本元字符如下:
- \d : 匹配数字0-9
- \n : 匹配换行符
- \num : 匹配第 num 个捕获的缓冲
- \s : 匹配空白字符,包括空格、制表符等
- \t : 匹配制表符
- \w : 匹配任何单词字符、数字字符、下划线
例如:\d\d
将匹配两个连续的数字。
定位符
定位符用于限定匹配字符串的边界。
- ^ : 匹配字符串的开头
- $ : 匹配字符串的结尾
- \b : 匹配一个单词的边界
- \B : 匹配一个单词的非边界
例如:^apple$
只能匹配单词 apple,这是因为使用了定位符,^ 限制匹配的单词只能以 a 开头,$ 限制匹配的单词只能以 e 结束。如果不加定位符,apple
不仅可以匹配单词 apple,还可以匹配单词 pineapple 中的 apple。
限定符
限定符用于限制某个匹配模式的重复次数。
- * : 匹配 0 次或更多次
- + : 匹配 1 次或更多次
- ? : 匹配 0 次或 1 次
- {n} : 匹配 n 次
- {n,} : 匹配至少 n 次
- {n,m} : 匹配至少 n 次,至多 m 次
例如:\d+
表示匹配至少一个数字; ^app\w{0,2}$
表示匹配以 app 开头的长度不超过 5 的字符串,包括 apple、apply 等。