楼主: yanan9256
4271 3

截取字符串遇到的问题 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

72%

还不是VIP/贵宾

-

威望
0
论坛币
145 个
通用积分
0.1200
学术水平
3 点
热心指数
6 点
信用等级
2 点
经验
6980 点
帖子
145
精华
0
在线时间
196 小时
注册时间
2008-10-12
最后登录
2018-9-5

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我在写了一个宏,今天运行的时候遇到了一个问题,问题如下:
例如:
有一个字符串 a_b
我需要将这个变量变成两个变量,我只需要用kscan截取第一个和第二个就可以了。
但是遇到a_b_c这样的我该怎么截取呢???因为每个字符串可能'-'的个数不能确定
我知道ksan(,-1,'-')可以截取最后一个'-'之后的。但我怎么截取前面的呢?
最后的结果为:最后一个'-'最为一个变量,前面的全部作为一个变量


估计是我讲的不清楚吧~都没有大侠回复~
简单点讲 就是
有一个字段,类似这种形式 a_b_c_d,我想这样截取 a_b_c为一个字段,d为一个字段
注意字段中下划线的个数不确定 也可能是a_b_c_d_e这种形式
二维码

扫码加我 拉你入群

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

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

关键词:字符串 最后一个 scan San 不确定 字符串

沙发
yongyitian 发表于 2013-8-27 07:57:36 |只看作者 |坛友微信交流群
  1. data Cut_Word;
  2.    length word $30.;
  3.    input word $;
  4.      LL = length(compress(word));
  5.     n_n = countw(word, '_');
  6.       I = n_n - 1;
  7.   call scan(word, I, position, length, '_');
  8.   word_1 = substr(word, 1, position);
  9.   word_2 = substr(word, position+2, LL-position-1);
  10.   word_3 = substr(word, 1, LL-2);
  11.   word_4 = substr(word, LL, 1);
  12. drop LL n_n position length I;
  13. datalines;
  14. a_b
  15. a_b_c
  16. a_b_c_d
  17. a_b_c_d_e
  18. a_b_c_d_e_f
  19. a_b_c_d_e_f_g_h
  20. a_b_c_d_e_f_g_h_i
  21. a_b_c_d_e_f_g_h_i_j
  22. a_b_c_d_e_f_g_h_i_j_k
  23. a_b_c_d_e_f_g_h_i_j_k_l
  24. ; run;
  25. proc print data=Cut_word; title 'Cut_Word'; run;
复制代码

Results.PNG (7.86 KB)

Results.PNG

Cut_word.PNG (11.19 KB)

Cut_word.PNG

Results.PNG (7.86 KB)

Results.PNG

使用道具

藤椅
playmore 发表于 2013-8-27 09:01:44 |只看作者 |坛友微信交流群
得到最后一段字符串:
string_latter=%SCAN(&string,-1,_);

然后取前面一段字符串:
string_fore=%SUBSTR(&string,1,%EVAL(%LENGTH(&string)-%LENGTH(&string_latter)-1));
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

板凳
chinaeu 发表于 2013-8-27 09:41:55 |只看作者 |坛友微信交流群
同问

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 06:05