ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: Allenng

[已解决] 字符串中截取中文字

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-6-21 15:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

搞定了,谢谢老板帮忙。

TA的精华主题

TA的得分主题

发表于 2021-6-21 15:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Allenng 发表于 2021-6-21 15:28
可能跟我excel 2016有关,此数组函数无效,谢谢。

自定义textjoin函数

TA的精华主题

TA的得分主题

发表于 2021-6-21 16:23 | 显示全部楼层
用正则可以并列多个分支正则表达式,所以,大多数文本的提取,只要目标字符内容的规则清晰的情况下,只需要一个正则式可以解决。

本题目中多种正则的写法。
常见的思路有两种:
一、①清除成对括号及以内的字符,②、再清除其余非汉字字符。
     表达式的写法是:\([^\(\)]*\)|[^\u4e00-\u9af5]
     见下面的动图演示。
     在CJK象形文字中,汉字字符集的范围是:[一-龥],或者,按它们的unicode码以十六进制形式表示为[\u4e00-\u9af5]。而“非汉字字符集”可用正则表达式中的反集的表示方法写成:[一-龥]或[^\u4e00-\u9af5]
     由上可见,汉字或非汉字的表示方式都比较麻烦:第一种需要输入一个生僻字,第二种需要记住一长串unicode码的十六进制形式,很不方便。因此,在我下面演示所用的插件中,允许用[\h]表示汉字集,用[^\h]表示非汉字集,该工具会在执行前,把它“翻译”成标准的正则表达式内容,方便使用。因此,在我的插件中,本例的正则表达式可以简写成:\([^\(\)]*\)|[^\h]
       如果对我的加载宏工具感兴趣,可以去以下帖子的29楼下载最新的附件。该工具是完全免费版,虽然功能不多,但在文本数据的清洗整理方面非常实用。
二、①清除小数点及数字字符,②、清除左括号及其后面的所有字符。
     此时,表达式的写法是:[\d.]|\([\d\D]*

比较上面的两种写法,可以发现,第二种方式可以绕过判断汉字,因此形式上更简单一些,但是,它仅根据举例中的内容只有数字、小数点、汉字、括号 这有限的4种,而且目标字符都出现在左括号之前的这两个“特征”来编写的。如果目标字符出现在右括号之后,那它就不适合了。相对来说,第一种方式更准确一些,当然也是更复杂一些。
     但是,一楼显然是一个大懒人,求助时所举的实例仅有一例,甚至于其想要达到什么样的期望结果,也是经过了别人的提醒后才来补充的,而实际数据的情况可能远不止例子中的这一种形式,所以,上面的第一种方式也不一定能完全适应求助者的所有实际数据。
提取汉字名称.gif

TA的精华主题

TA的得分主题

发表于 2021-6-21 19:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
PQ~~~~~~~~~~~

工作表20210621 v1.zip

142.14 KB, 下载次数: 1

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-25 02:54 , Processed in 0.022499 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表