CSDN博客

img AnyJack

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

发表于2004/9/23 14:01:00  3912人阅读

分类: SAS

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

测试案例如下:
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者的运行时间相差很大,不是一个级别
故建议在运行速度要求较高的程序中最好不要使用正则表达式
0 0

相关博文

我的热门文章

img
取 消
img