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

类别:编程语言 点击:0 评论:0 推荐:
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者的运行时间相差很大,不是一个级别
故建议在运行速度要求较高的程序中最好不要使用正则表达式

本文地址:http://com.8s8s.com/it/it27162.htm