sql server 替换有反斜杠的字符串_字符串提取,到底谁是你的菜?

字符串提取,是表亲们经常遇到的问题,今天就和大家一起学习字符串提取的方法。

如下图所示,要从A列的路径中提取出文件名称。

bf1761ada8b448d5a853b1f99ca38500.png提取的结果如下图所示:

00519b215e3b3b7f442465360794a995.png

观察这些数据,咱们可以发现:

A列字符串中都是以“\”字符进行分隔的,实际上咱们就是提取最后一个反斜杠“\”后的内容。

有多种方法可以处理这个问题:

58738c4d192531d0db6507bf48bb58f7.png

B2单元格输入以下公式:

=IFERROR(RIGHT(A2,LEN(A2)-FIND("*",SUBSTITUTE(A2,"\","*",LEN(A2)-LEN(SUBSTITUTE(A2,"\",""))))),"")

  1. LEN(A2)-LEN(SUBSTITUTE(A2,"\","")这部分是计算字符串中一共有几个“\”。

  2. 首先用SUBSTITUTE 函数以一个新字符“*”,替换掉最后一个“\”。

  3. 然后再利用FIND函数找到“*”在文本串中的位置。

  4. 接下来用LEN(A2)计算出字符串的总长度,再减去星号“*”在文本串中的位置,余下的就是咱们需要提取的字符个数。

  5. 最后用RIGHT函数从A2单元格的右侧开始,提取(字符长度-星号位置)的字符,就是咱们需要的结果了。

77ce9fb9aa55ecfd42fd82ac442a695a.png

B2单元格输入以下公式:

=TRIM(RIGHT(SUBSTITUTE(A2,"\",REPT(" ",99)),99))

  1. REPT(" ",99)的作用是生成99个空格。

  2. 再用SUBSTITUTE函数,将间隔符号“\”全部替换为99个空格。

  3. 接下来使用RIGHT函数,从替换后的字符串右侧开始,提取99个字符,这样就得到最后一个“\”之后的字符串和不确定数量的空格。

  4. 最后使用TRIM函数,将多余的空格替换掉。

ae702f901fe3c14878a6591ba8ee2c47.png

复制A列数据,粘贴到B列。

选中B列,按Ctrl+H调出替换对话框。

在查找内容编辑框中输入: *\

76b4d640da021efe32d3ffff18a2d89e.png

星号* 是通配符,表示任意多个字符。*\ 就是表示字符“\”和他之前的所有内容。

只要点击【全部替换】,就可以快速提取出需要的结果了。

三种方法,各有千秋,公式法的特点是数据源发生变化后,结果能自动更新,但是对于初学者来说,一层层的嵌套,会有点眼晕。

第三种方法的特点是便捷快速,缺点是数据源发生变化后,结果不能自动更新。

说说看,你更喜欢哪种呢?

图文制作:耿勇

e8519db1eb8c600ed3940050f3afd4b6.png

专业的职场技能充电站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值