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

原创 2004年09月23日 14:01:00
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者的运行时间相差很大,不是一个级别
故建议在运行速度要求较高的程序中最好不要使用正则表达式

匹配中文字符的正则表达式: [u4e00-u9fa5](

匹配双字节字符(包括汉字在内):[^x00-xff]   评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   匹配空白行的正则表达式:ns*r   评注:可以用来删...
  • xiaotianlan
  • xiaotianlan
  • 2017年06月15日 09:45
  • 1604

Greedy Match学习笔记一 —— 匹配原理及SAS实现

Greedy Match 是基于 Greedy Algorithm 的思想,根据实验组样本在受到特定干预前的各项属性,贪婪的、不放回的生成一个虚拟对照组的方法。该方法的思想清晰透明,且可以根据需要灵活...
  • Noob_daniel
  • Noob_daniel
  • 2017年08月01日 17:20
  • 894

正则表达式

目录 跳过目录 本文目标如何使用本教程正则表达式到 底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负 向零宽断言注释贪婪与懒惰处理选项平衡组/递 ...
  • CNHK1225
  • CNHK1225
  • 2014年12月17日 11:32
  • 694

关于字符串模糊匹配

一种比KMP和BM更高效的匹配算法(如果想看原英文介绍,看下面分割线后的网址) 适用于:模式串较短的情况,最坏时间复杂性为O(N*M),不过一般没这么坏 Sunday算法其实思想跟BM算法很相似,...
  • gumingyaotangwei
  • gumingyaotangwei
  • 2012年03月08日 00:28
  • 12712

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

sas9正则表达式测试(对字符串进行字符替换)测试案例如下:1、没有使用正则表达式进行字符串替换data _null_;length a b $20000;do i=1 to 500;a="dsfds...
  • AnyJack
  • AnyJack
  • 2004年09月23日 14:01
  • 4083

SAS9新体验-在DATA STEP中使用perl 正则表达式支持(Regular Expressions)

sas自9版开始支持perl(Perl 5.6.1 ) 正则表达式支持,极大的方便了数据校验的简易性、可靠性在没有Regular Expressions(RE)前,只能使用index,substr,t...
  • AnyJack
  • AnyJack
  • 2004年09月22日 14:04
  • 2070

php对数组或字符串中的特殊字符进行转换

// 数组转义操作 function asArray($arr) { if(is_array($arr)) { foreach($arr as $key => $values) { $arr[...
  • qq_35191331
  • qq_35191331
  • 2017年03月24日 16:08
  • 144

Swift - 字符串的替换与过滤(附:过滤emoji表情符号)

开发中常常会遇到需要将 String 字符串中的特殊符号给过滤掉,或者将某些子字符串替换成其他的内容,下面通过样例进行演示。 一、字符串替换 1,简单的替换 下面将字符串中所有的...
  • mo_xiao_mo
  • mo_xiao_mo
  • 2017年04月17日 09:52
  • 3155

ElasticSearch使用教程四(ElasticSearch查询详解)

一、简介说明 注意:以下命令都是使用sense测试(ElasticSearch第二步-CRUD之Sense),且数据都已经使用过IK分词。 以下测试数据来源于文档(db_test/pers...
  • qq_26562641
  • qq_26562641
  • 2016年02月02日 17:55
  • 6631

常用的C#正则表达式!

"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]...
  • xiaotianlan
  • xiaotianlan
  • 2014年08月28日 08:41
  • 273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sas9正则表达式测试(对字符串进行字符替换)
举报原因:
原因补充:

(最多只允许输入30个字)