可以先参考先前介绍正则表达式的元字符的那篇。
SAS对正则表达式 (Regular Expressions, RX) 的支持,表现在以下两大类函数(包括Call Routines)中:
- SAS Perl Regular Expressions (PRX),SAS9开始引进,有10个函数;
- SAS Regular Expressions (RX) ,SAS6.12就开始支持,5个函数。
这两个正则表达式系统功能类似,只是语法略有差别。它们的对应如下:
SAS Perl Regular Expressions SAS Regular Expressions 版本 SAS9-- SAS6.12-- 函数前缀 PRX RX 定义正则表达式的函数 PRXParse RXParse 定位函数 PRXMatch RXMatch Call PRXSubstr Call RXSubstr Call PRXPosn Call PRXNext PRXParen 文本替换函数 PRXChange Call PRXChange Call RXChange 释放内存函数 Call PRXFree Call RXFree 代码调试函数 Call PRXDebug
在RX系统中,比如,用$d或$D来表示数字0-9,在PRX中,用/d,/D却表示所有不是数字的字符。同时学习两套系统很容易弄混。建议只使用SAS PRX。
- PRX提供了更丰富的函数;
- PRX更为人所知;
- PRX据说更有效率。
(待续……)