关注我,带你从零基础逆袭Excel高手!
记得★星标,及时收到推送
如果你用了10年Excel,但从来没有听过正则表达式,建议今天的文章你认真看一下!因为,真的太有用了!
内容较长,可收藏后慢慢看。
01 什么是正则表达式
02 什么是正则函数
03 应用举例
04 用AI编写Excel正则公式
Excel日常工作中,常常需要从大量文本数据中查找、提取或替换特定的内容。
例如,从下图中C列的文本数据中提取所有的数字(即长宽高),并对这些数字求乘积。

怎么办?你用传统函数的话,这个问题将变得极其复杂。你可能需要:
❶ 提取第1个[前面的数字
❷ 提取第2个[和第1个逗号之间的数字(复杂!)
❸ 提取第3个[和第2个逗号之间的数字(复杂!)
❹ 最后将以上3个数字相乘
而使用正则表达式和正则函数,则可以非常轻松地解决这个问题。你只需要在D17编写一个这样的公式,然后复制一下公式即可:
=PRODUCT(--REGEXEXTRACT(C17,"\d+(\.\d+)?",1))

公式解析:
PRODUCT函数,求乘积。
REGEXEXTRACT,正则提取函数,通过正则表达式捕获并提取目标数据。
"\d+(\.\d+)?"——正则表达式,它用规则字符串的形式描述了要捕获的目标数据的格式,即文本数据中的所有数字(含小数)。
其中,\d匹配任意一个数字,\.即小数点,+代表前面的字符出现1次或1次以上,?代表前面的字符出现0次或1次。
01
什么是正则表达式
正则表达式(Regular Expression,简称RegEx)是专门为解决不规则文本处理而生的,它是一种由特定的规则符号组成的“模式语言”,用来描述目标文本或字符串的规律。
任何目标数据,只要你能用语言描述出来,就能用正则表达式把它写出来,然后通过正则函数或VBA或其它的编程语言实现相应的处理,如——查找、提取、替换。
想要熟练使用正则表达式,必须先了解正则表达式中的规则字符,也就是元字符。以下是为你整理的常用元字符查询表:
. | a.bacb、a1b等 | |
* | ab*cac、abc、abbc | |
+ | ab+cabc、abbc | |
? | ab?cac或abc | |
[ ] | [abc]a、b或c | |
[^ ] | [^abc]a、b、c外的任意字符 | |
[a-z] | [A-Z] | |
\d | [0-9] | \d{3} |
\D | \D+ | |
\w | \w+ | |
\W | ||
\s | ||
{n} | \d{11} | |
{n,} | \d{3,} | |
{n,m} | \d{3,5} | |
^ | ^abc | |
$ | abc$ | |
\b | \bcat\bcat但不匹配catalog | |
( ) | (ab)+ab、abab等 | |
| | a|ba或b |
02
什么是正则函数
正则表达式是我们用来捕获目标数据的核心方法(内核),有了正则表达式,我们能够精准捕获符合匹配模式的所有数据。
但要想将捕获到的目标数据提取出来,光有正则表达式是不行的,还需要给正则表达式套一个外壳,也就是正则函数,通过正则函数对所有捕获到的目标数据进行提取、替换等处理。
在Excel中,有3个正则函数可以使用(仅限Excel365,其它版本没有):
功能:从字符串中提取匹配正则表达式模式的内容。
语法:=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])
text:要处理的文本
pattern:正则表达式模式
return_mode:可选,0返回第一个匹配(默认),1返回所有匹配,2返回捕获组内容
case_sensitivity:可选,0表示区分大小写(默认),1表示不区分大小写
典型应用:从混合文本中提取电话号码、邮箱、日期等结构化信息。
功能:将字符串中匹配正则表达式模式的内容替换为指定文本。
语法:=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])
text:要处理的文本
pattern:要查找的正则表达式模式
replacement:替换后的文本
occurrence:可选,指定替换第几个匹配项,0表示全部替换(默认)
case_sensitivity:可选,0表示区分大小写(默认),1表示不区分大小写
典型应用:批量清理数据、格式化文本、删除特定字符。
3. REGEXTEST——模式验证函数
功能:判断字符串是否匹配指定的正则表达式模式,返回TRUE或FALSE。
语法:=REGEXTEST(text, pattern, [case_sensitivity])
text:要检查的文本或单元格引用
pattern:正则表达式模式
case_sensitivity:可选,0表示区分大小写(默认),1表示不区分大小写
典型应用:数据验证、格式检查、条件筛选。
03
正则表达式及正则函数应用
场景:你有一列包含各种联系方式的文本数据,需要从中提取出11位手机号码。
数据示例:"联系人:张三,联系电话:13812345678,地址:北京市"
公式:=REGEXEXTRACT(A2, "1[3-9]\d{9}")
公式解析:
1:手机号码以数字1开头
[3-9]:第二位是3到9之间的数字
\d{9}:后面紧跟9位数字(\d代表任意数字,{9}表示重复9次)
如果数据中有多个手机号码,想全部提取出来,可以使用:REGEXEXTRACT(A2, "1[3-9]\d{9}", 1)。
场景:你有一列用户输入的邮箱地址,需要验证哪些格式是正确的。
数据示例:zhangsan@example.com、lisi@163(缺少域名后缀)
公式:=REGEXTEST(A2, "^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z]{2,}$")
公式解析:
^:从字符串开头开始匹配
[a-zA-Z0-9]:邮箱用户名部分必须以字母或数字开头和结尾
[\w\.-]*:中间可以包含字母、数字、下划线、点号或连字符
@:必须包含@符号
[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]:域名部分同样以字母或数字开头和结尾
\.:一个点号(需要转义)
[a-zA-Z]{2,}:顶级域名至少2个字母
$:匹配到字符串结尾
进阶应用:结合IF函数,可以批量标注邮箱格式是否正确:
=IF(REGEXTEST(A2, "^[\w\.-]+@[\w\.-]+\.\w+$"), "有效", "无效")
场景:在发布包含客户联系方式的报表时,需要对手机号码中间4位进行打码处理。
数据示例:13812345678 → 需要变成138****5678
公式:=REGEXREPLACE(A2, "(\d{3})\d{4}(\d{4})", "$1****$2")
公式解析:
(\d{3}):第一组,匹配前3位数字,并用括号捕获
\d{4}:匹配中间4位数字(需要被替换的部分)
(\d{4}):第二组,匹配后4位数字,并捕获
$1****$2:保留第一组和第三组,中间用4个星号替换
效果:13812345678 → 138****5678
场景:你有一列商品信息数据,需要从中提取出所有数字。
数据示例:"售价2999元,原价3999元,折扣1000元"
公式:=TEXTJOIN("、", TRUE, REGEXEXTRACT(A2, "\d+", 1))
公式解析:
\d+:匹配一个或多个连续的数字(\d代表数字,+表示至少一个)
第三参数1:返回所有匹配项,而不仅仅是第一个
TEXTJOIN:将所有匹配的数字用顿号连接起来
效果:"2999、3999、1000"
进阶应用:如果还想对这些数字进行求和,可以配合SUM函数:
=SUM(--REGEXEXTRACT(A2, "\d+", 1))
场景:在处理包含中英文混合的产品名称时,需要提取出中文部分。
数据示例:"Apple苹果iPhone" → 需要提取出"苹果"
公式:=REGEXEXTRACT(A2, "[\u4e00-\u9fa5]+")
公式解析:
[\u4e00-\u9fa5]:这是中文Unicode编码的范围,代表所有汉字字符
+:匹配一个或多个连续的汉字
效果:从"Apple苹果iPhone"中提取出"苹果"
扩展应用:如果想提取非中文部分(即英文字母和数字)
=REGEXEXTRACT(A2, "[A-Za-z0-9]+", 1)
场景:商品描述中包含规格信息在括号内,如"iPhone 15 Pro(256GB深空黑)",需要提取括号中的规格。
公式:=REGEXEXTRACT(A2, "[((](.+?)[))]")
公式解析:
[((]:匹配中文左括号或英文左括号
(.+?):捕获括号内的内容(?使匹配变为非贪婪模式,遇到第一个右括号就停止)
[))]:匹配中文右括号或英文右括号
效果:从"iPhone 15 Pro(256GB深空黑)"中提取出"256GB深空黑"
04
正则表达式学不会怎么办?
作为文本处理的利器,正则表达式固然好用,但相比其它技能,正则表达式的学习难度和学习成本也很高,是一门“学了容易忘、用时总出错”的技能。
绝大多数人一年也用不了几次正则,每次都要重拾正则字符,从头查语法、消化各种案例。为了这点使用频率,投入几十个小时去啃它,性价比实在太低!
那怎么办呢?你可能会有疑问。如果以后遇到正则问题,怎么能够快速编写出正确的正则表达式和正则函数呢?
不用担心!你只需要知道正则表达式和正则函数这个概念就好了,完全不需要花时间去深究!
只要你安装了我的Excel超能力插件,在AI智能体对话功能中,只需发一句指令,我的AI分身就可以在几秒钟内帮你自动写入正则公式,准确率非常高!
来看几个例子:
案例1:提取长宽高并求和





以上就是今天的分享。觉得内容有用,欢迎点赞、分享!想体能智能体的朋友可以通过以下链接下载。


想跟我学习 Excel & AI数据处理,欢迎报名我的——
VIP终身会员,尊享以下权益:
1、11套课程永久免费学——Excel实战课、函数公式、图表制作、宏与VBA、Power Query、Dashboard制作、Excel智能体3天营,提供配套课件……
2、VIP课程答疑——学习过程中有疑问,老师本人提供一对一答疑和指导
3、Excel超能力 • AI智能办公套装——含42个超级快捷键、30+超能函数、130+做表功能、AI智能体(自动编写公式、生成VBA/Pythob代码、一键生成图表、智能处理和分析数据等功能)
4、赠送我的Excel作品原文件——Dashboard作品源文件、动态图表作品源文件
「Excel同学会—VIP终身会员」
🔥一次报名,永久有效🔥
Excel一站式学习,从入门到精通
11套课 + 学习答疑 +
👇👇

△
报名即送1次电话学习指导
如需一对一私教(解决工作中的Excel问题),或企业培训,可以加我微信联系。
