SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3339|回复: 2
打印 上一主题 下一主题

关于prxchange()的一个问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-12-22 06:37:08 | 只看该作者

关于prxchange()的一个问题

data a;
input x $60. ;
x2=prxchange('s/([\d+]):(\w+\d*\w*):([^:])/$2/',-1,x);
cards;
935973:etl5dvh:FRD_ST.92.03s:ST.92.03_UAA:ST92ts
936023:etl3dvh:PRD.92.w:ST.92.03AAA:ST9203_CDC_E_W
936027:etl9dvh:TRD_ST.92ndowAAC:ST.92.03_SAS_Logg_Arkivering
936040:etl0dvh:KRDs:ST.05.00_AAA:ST0500_Hz_R_T_L
936042:etl1dvh:PReables:ST.05.00_SAABA:ST050_Hz_Par_Sit_LD
;
run;
我想得到被‘:’间隔开的string,比如第二个string: etl5dvh. 但如果用prxchange好像就不行,清大家帮忙看一下.
谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-12-22 09:29:28 | 只看该作者

Re: 关于prxchange()的一个问题

data a;
        input x $60. ;
        x2=prxchange('s/\d+:(\w+):.*/$1/',-1,x);
        x3=scan(x,2,':');
        cards;
935973:etl5dvh:FRD_ST.92.03s:ST.92.03_UAA:ST92ts
936023:etl3dvh:PRD.92.w:ST.92.03AAA:ST9203_CDC_E_W
936027:etl9dvh:TRD_ST.92ndowAAC:ST.92.03_SAS_Logg_Arkivering
936040:etl0dvh:KRDs:ST.05.00_AAA:ST0500_Hz_R_T_L
936042:etl1dvh:PReables:ST.05.00_SAABA:ST050_Hz_Par_Sit_LD
;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2013-1-22 06:06:26 | 只看该作者

Re: 关于prxchange()的一个问题

谢谢Ferry.
但我想得到被:间隔的每个string,比如第二个、第三个等,不仅是第二个。
using prx functions(e.g. prxchange()) instead of scan().
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-3 05:58 , Processed in 0.154062 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表