楼主: winterisnice
9581 5

请教:sas如何去除字符串中括号内的内容? [推广有奖]

  • 0关注
  • 1粉丝

高中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
68 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
160 点
帖子
23
精华
0
在线时间
51 小时
注册时间
2011-6-3
最后登录
2017-6-13

楼主
winterisnice 发表于 2013-4-3 17:08:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问,如何去除字符内括号内的内容(也去除括号),例如,字符窜:

GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)

想把两个(PRIOR)都去除,留下GABELLI;BOFAMERRILLLYN,而括号在字符串中的位置和个数均无法确定,请教各位达人,sas中如何实现?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:字符串 Merrill Merril PRIOR BofA 字符串 如何

已有 1 人评分经验 论坛币 收起 理由
webgu + 10 + 10 好问题。

总评分: 经验 + 10  论坛币 + 10   查看全部评分

沙发
pobel 在职认证  发表于 2013-4-3 17:22:18
如果括号成对出现,并且左括号在前:

data test;
    str="GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)";
    do while(index(str,"("));
           loc_left=index(str,"(");
           loc_right=index(str,")");
           str=substr(str,1,loc_left-1)||substr(str,loc_right+1);
        end;
run;
已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 40 + 40 + 2 + 2 + 2 精彩至极

总评分: 经验 + 40  论坛币 + 40  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

和谐拯救危机

藤椅
zhengbo8 发表于 2013-4-3 17:30:47
方法一:

  1. data _null_;
  2.     length a b $1000;
  3.     a="GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)";
  4.     do i=1 to length(a);
  5.         b=tranwrd(a,"(PRIOR)","");
  6.     end;
  7.     put a= b=;
  8. run;
复制代码

方法二:

  1. data _null_;
  2.     length a b $1000;
  3.     gt_re = prxparse('s/\(PRIOR\)//');
  4.     a="GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)GABELLI(PRIOR);BOFAMERRILLLYN(PRIOR)";
  5.     do i=1 to length(a);
  6.     b=a;
  7.     call prxchange(gt_re, -1, b);
  8.     end;
  9.     put a= b=;
  10. run;
复制代码

方法二是正则表达式,匹配可能好些,但效率相对低点。定义a、b长度时,根据你的字符串长度进行修改。

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
winterisnice + 1 + 1 + 1 很有用~~
webgu + 10 + 10 + 1 + 1 + 1 观点有启发

总评分: 经验 + 10  论坛币 + 10  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
webgu 发表于 2013-4-3 18:12:55
zhengbo8 发表于 2013-4-3 17:30
方法一:
1.可以不需要做循环的。
2.程序通用性稍微差一点。

SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

报纸
winterisnice 发表于 2013-4-4 17:10:37
pobel 发表于 2013-4-3 17:22
如果括号成对出现,并且左括号在前:

data test;
多谢楼上~~

地板
winterisnice 发表于 2013-4-4 17:11:14
zhengbo8 发表于 2013-4-3 17:30
方法一:
多谢解答~~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 13:46