网站首页 > 基础教程 正文
大家好,今天我们来讲讲REGEXP正则表达式函数如何解决提取数字、汉字与字母。以前很棘手的问题,自从有了REGEXP函数后就变得非常简单。
如下图所示:
A2单元格是包含了数字、汉字与字母的混合内容。并且数字、汉字与字母并不是唯一的存在,可能包含多段。我们想要分别提取所有的汉字、数字与字母分别显示在B2、B4与B6单元格。
REGEXP函数是基于正则表达式,对复杂文本进行匹配、提取和替换的函数。
基本语法结构:
REGEXP(原始字符串,正则表达式,[匹配模式],[替换内容])
匹配模式是可选项,0或忽略表示提取,1表示判断是否包含,2表示替换。
替换内容是可选项,仅在匹配模式为2时有效,用来替换匹配的内容。
我们首先提取汉字:
=REGEXP(A2,"[一-龟]")
在Excel中正则表达式[一-龟]可以代表所有的汉字字符。所以我们使用REGEXP函数,用正则表达式[一-龟],省略第3参数,默认表示提取,提取A2单元格内所有的汉字字符。
返回的结果以数组溢出显示。我们发现所有的汉字字符以长度为1的形式显示在不同的单元格中。
本例数据源中的汉字字符被非汉字字符分成了多部分,比如本例中分成了两段,分别是“红色”和”绿色“。为了使“红色”和”绿色“两段分别连续,可以这样修改公式:
=REGEXP(A2,"[一-龟]+")
将[一-龟]加上+后,变成[一-龟]+,就可以连续显示提取内容了。
如果说,还想将提取到的“红色”和”绿色“放到一个单元格中,可以这样完善公式:
=TEXTJOIN(",",,REGEXP(A2,"[一-龟]+"))
用TEXTJOIN函数,用分隔符号逗号",",省略第二参即忽略空值单元格后将REGEXP函数的返回结果合并起来。
然后我们提取数字:
=REGEXP(A2,"[0-9]+")
在Excel中正则表达式[0-9]可以代表所有的数字字符。所以我们使用REGEXP函数,用正则表达式[0-9]+,省略第3参数,默认表示提取,提取A2单元格内所有的连续数字字符。
最后我们提取字母:
=REGEXP(A2,"[A-z]+")
在Excel中正则表达式[A-Z]可以代表所有的大写字母字符;正则表达式[a-z]可以代表所有的小写字母字符;正则表达式[A-z]可以代表所有的大写与小写混合字母字符。
若不确定A2单元格中的字母是大写还是小写或是同时存在,可以用正则表达式[A-z]表示。
所以我们使用REGEXP函数,用正则表达式[A-z]+,省略第3参数,默认表示提取,提取A2单元格内所有的连续字母字符。
猜你喜欢
- 2025-03-30 使用正则表达式验证手机号-C#学习进阶
- 2025-03-30 Excel正则表达式:提取出负数的操作方法
- 2025-03-30 python利用正则提取字符串中的手机号
- 2025-03-30 WPS新增REGEXP函数正则表达式的实践应用4-提取
- 2025-03-30 551 实用指南:表格中日期格式的规范录入与转换技巧
- 2025-03-30 JMeter中3种参数值的传递(jmeter调用参数)
- 2025-03-30 python接口自动化(十一)--发送post「data」(详解)
- 2025-03-30 EXCEL VBA学习笔记:正则表达式(二)表达式语句写法
- 2025-03-30 玩转Python正则表达式,开启高效数据提取之旅
- 2025-03-30 这个新增的Excel提取函数,太厉害了!WPS也能用了!
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)