专业编程基础技术教程

网站首页 > 基础教程 正文

提取数字、汉字与字母,REGEXP函数解放生产力!

ccvgpt 2025-03-30 14:39:36 基础教程 9 ℃

大家好,今天我们来讲讲REGEXP正则表达式函数如何解决提取数字、汉字与字母。以前很棘手的问题,自从有了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单元格内所有的连续字母字符。


最近发表
标签列表