Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40077
  • 博文数量: 34
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-13 12:01
文章分类

全部博文(34)

文章存档

2019年(15)

2016年(7)

2015年(12)

我的朋友

分类: 信息化

2016-11-09 09:47:56

已知A1=http://www.163.com/sports/Arsenal.html,要获取Arsenal.html字符串。

思考:
Arsenal.html字符串前面最明显的分隔符是"/",一般情况都是使用SUBSTITUTE()直接定位到"/"进行替换为特殊字符,然后再通过FIND()特殊字符定位位置,最后再通过RIGHT()函数进行截取。但是"/"在A1中存在多个,而且为了能适应含有任何多个"/"的A1,不能使用以上方法。

解决:
将A1中的“/”替换为一个长度很长的特殊字符,最好替换到长度与A1字符串一致,这样A1字符串就被拉长了很多,然后再从右截取A1长度,这样得到的字符串就肯定包含了“Arsenal.html”在内。那么替换字符选择什么好呢?既然最后得到的是类似“??????????????????????????????????????????????????????????????????????Arsenal.html”这种格式的字符串,那么"?"就最好能是“ ”,可以方便的使用TRIM()函数去除掉空格。

实现:

公式=TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))).
解释:
1.REPT(" ",LEN(A1))
得到一空格串,长度为A1的长度(38个空格)。
REPT函数可以按照定义的次数重复现实文本,相当于复制文本。

2.SUBSTITUTE(A1,"/",REPT(" ",LEN(A1)))
将A1中的字符"/"用38个空格串(第1步所得)来替换,此时,可获得的文本如下:
“http:                           www.163.com             sports              Arsenal.html
其中的空格长度是38,就是A1的长度,把A1字符串拉长了。SUBSTITUTE(text,old_text,new_text,instance_num)函数是在text字符串中查找old_text,并用new_text进行替代。

3.RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1))
RIGHT()从右往左取字符串,取的长度为A1长度38个字符此时得到长度38的字串: 
              Arsenal.html,其中前面的空格为26个,后面的Arsenal.html为12个,合计38字符


4.TRIM(RIGHT(SUBSTITUTE(A1,"/",REPT(" ",LEN(A1))),LEN(A1)))
最后使用TRIM()将空格删除,可得到结果:Arsenal.html
阅读(485) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册