楼主: xiaoyu163
1304 9

[原创博文] 字符搜索问题请教 [推广有奖]

  • 1关注
  • 2粉丝

硕士生

15%

还不是VIP/贵宾

-

威望
0
论坛币
403 个
通用积分
3.0001
学术水平
4 点
热心指数
5 点
信用等级
6 点
经验
12151 点
帖子
66
精华
0
在线时间
206 小时
注册时间
2010-7-13
最后登录
2024-4-29

楼主
xiaoyu163 发表于 2011-9-14 00:44:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问如何在一列数据里搜寻到带特定符号的字符,比如如果数据是这样的:
obs     contents
1         aa/aaa/a
2         b/bb/
3         c/cc/ccc
4         dddd/d/d
5         ee/eee/e

我想要得到如下的样子:
aaa
bb
cc
d
eee

在SAS或SQL里应该怎么实现呢?谢谢大家了!!!
二维码

扫码加我 拉你入群

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

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

关键词:搜索问题 contents Content sql ten 搜索问题 如何

沙发
wangyf0218 发表于 2011-9-14 08:54:37
data a;
input a $;
cards;
aa/aaa/a
b/bb/
c/cc/ccc
dddd/d/d
ee/eee/e;
run;


data b;
        set a;
        index1=find(a,'/',1);
        index2=find(a,'/',index1+1);
        b=substr(a,index1+1,index2-index1-1);
        keep a b;
run;

藤椅
soporaeternus 发表于 2011-9-14 09:07:56
是抓以/为分隔符的第二个字符串的话,用scan函数更方便
Let them be hard, but never unjust

板凳
yugao1986 发表于 2011-9-14 09:18:10
  1. data test;
  2. input obs contents $;
  3. cards;
  4. 1         aa/aaa/a
  5. 2         b/bb/
  6. 3         c/cc/ccc
  7. 4         dddd/d/d
  8. 5         ee/eee/e
  9. ;
  10. data need;
  11. set test;
  12. newcontents=reverse(scan(reverse(contents),2,'/'));
  13. run;
复制代码
三人行必有我师

报纸
wangyf0218 发表于 2011-9-14 09:20:50
恩,确实
data b;
        set a;
        b=scan(a,2,'/');
run;

地板
shenliang_111 发表于 2011-9-14 10:04:13
yugao1986 发表于 2011-9-14 09:18
比较好奇的是为什么先要reverse一下?

7
soporaeternus 发表于 2011-9-14 10:32:33
shenliang_111 发表于 2011-9-14 10:04
比较好奇的是为什么先要reverse一下?
倒数第二个估计是
Let them be hard, but never unjust

8
yugao1986 发表于 2011-9-14 10:43:04
shenliang_111 发表于 2011-9-14 10:04
比较好奇的是为什么先要reverse一下?
如果再多几个slash,看他是选择哪两个'/ /'间的字符串了
三人行必有我师

9
leedx 发表于 2011-9-14 10:44:37
学习了,很有用的程序~~~

10
yugao1986 发表于 2011-9-14 11:00:56
哪位能用正则形式写下?更复杂的貌似用正则表达更简单.
三人行必有我师

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 17:01