sas9正则表达式测试(对字符串进行字符替换)

来源:互联网 发布:ug8.5编程视频教程 编辑:程序博客网 时间:2024/04/29 16:07

测试案例如下:
1、没有使用正则表达式进行字符串替换
data _null_;
length a b $20000;
do i=1 to 500;
a="dsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssss
ssssssssssssssssssssssssssssssssss";
b=tranwrd(a,"s","w");
end;
put a= b=;
run;
运算结果为:
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.47 秒
      CPU 时间         0.47 秒

2、使用正则表达式进行字符串替换
data _null_;
length a b $20000;
gt_re = prxparse('s/s/w/');
do i=1 to 500;
a="dsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssdsfdsssssssssssssssssssssssssssssssssssssssssssssssssss
ssssssssssssssssssssssssssssssssss";
b=a;
call prxchange(gt_re, -1, b);
end;
put a= b=;
run;
运算结果为:
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         45.71 秒
      CPU 时间         43.91 秒


经测试,可见2者的运行时间相差很大,不是一个级别
故建议在运行速度要求较高的程序中最好不要使用正则表达式

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/AnyJack/archive/2004/09/23/114238.aspx

原创粉丝点击