前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Query中如何找到第一个中文字符并进行分割提取?

Power Query中如何找到第一个中文字符并进行分割提取?

作者头像
逍遥之
发布2020-03-24 15:36:10
2.2K0
发布2020-03-24 15:36:10
举报
文章被收录于专栏:数据技巧数据技巧

原数据:

整理后数据:

以上是一份视频文件名称,通过PQ对文件夹内的名称进行导入后得到的。由3部分组成:集数+文件名+文件格式。我们需要分别把其拆分成3个列,我们看下如何操作。

(一) 首先我们先分析文件名的规律。

1. 文件格式的分割。

文件格式相对比较好容易拆分,只需要根据小数点的符号进行拆分即可。

2. 提取在数字格式和小数点之间的文件名

但是集数和文件名的提取相对比较麻烦。若是通过空格来进行拆分,我们看 222-234人鱼又再度悲泣(事件篇)(疑惑篇)(解决篇).RM这个文本没有存在空格,所以如果按空格拆分就会出现如下问题,这个不是我们需要的。

(二) 根据非中文字符和中文字符的条件进行分割。

确定非中文字和中文字的位置。确定文本中指定位置的函数我们知道有以下几个。 Text.PositionOf,Text.PositionOfAny,List.PositionOf,List.PositionOfAny。有了第一个中文字符所在的位置,那提取就很容易了,只需要使用Text.Range进行提取即可。 因为我们这里是需要查找所有的中文字符,有几种处理思路。

1. 通过Text.PositionOf+ List.Transform+ List.Select+ List.Min方式。

解释:

代码语言:javascript
复制
List.Min(
        List.Select(
           List.Transform({"一".."龟"},  //查找全部中文字符
                 (a)=> Text.PositionOf([Name],a)  //找到对应中文字符所在的文本位置,未找到的为-1
                          ),
                          each _ <>-1   //提取全部中文位置的位置
                    )
        )   //提取第一个中文所在位置

2. 通过Text.PositionOfAny方式

解释:

代码语言:javascript
复制
Text.PositionOfAny([Name],{"一".."龟"})  //查找第一个中文所在的位置

我们可以根据以上的案例,可以自定义一个函数,以后就可以方便提取。

请点个赞,转发分享给更多的人。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一) 首先我们先分析文件名的规律。
    • 1. 文件格式的分割。
      • 2. 提取在数字格式和小数点之间的文件名
      • (二) 根据非中文字符和中文字符的条件进行分割。
        • 1. 通过Text.PositionOf+ List.Transform+ List.Select+ List.Min方式。
          • 2. 通过Text.PositionOfAny方式
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档