Excel 365 新函数 REGEX 完全指南 — 文本处理的终极武器
Excel 365 最新引入的 REGEX 系列函数,让正则表达式终于走进了电子表格。本文系统讲解 REGEXEXTRACT / REGEXTEST / REGEXREPLACE 三大函数。
一、REGEX 系列函数是什么
REGEX(正则表达式)是一套强大的文本模式匹配语法。Excel 365 引入了三个配套函数:
|
|
|
|---|---|
REGEXEXTRACT |
|
REGEXTEST |
|
REGEXREPLACE |
|
二、适用版本
|
|
|
|---|---|
|
|
Excel 365
|
|
|
|
⚠️ 这些函数目前正在陆续向所有 Microsoft 365 用户推送,部分用户可能尚未收到更新。如果看到
#NAME?错误,说明当前版本暂不支持。
三、基本语法
=REGEXEXTRACT(文本, 正则模式, [返回第几个匹配])=REGEXTEST(文本, 正则模式, [是否区分大小写])=REGEXREPLACE(文本, 正则模式, 替换文本, [替换第几个])
四、15 个实战场景
场景 1:提取手机号
=REGEXEXTRACT("联系电话: 13812345678 转分机888", "\d{11}")→ 结果: 13812345678
\d{11}表示匹配 11 位连续数字。
场景 2:提取邮箱用户名
=REGEXEXTRACT("联系邮箱: zhangsan@example.com", "[a-zA-Z0-9._%+-]+(?=@)")→ 结果: zhangsan
(?=@)是零宽断言,只匹配 @ 前面的部分。
场景 3:提取邮箱域名
=REGEXEXTRACT("邮箱: zhangsan@example.com", "@[a-zA-Z0-9.-]+")→ 结果: @example.com
@开头匹配,提取 @ 及其后面的域名部分。
场景 4:提取数字(全部数字)
=REGEXEXTRACT("产品编号: ABC-123-XYZ-456", "\d+")→ 结果: 123 (返回第一个数字序列)
场景 5:同时提取多个匹配(第 2 个参数)
=REGEXEXTRACT("ABC-123-XYZ-456", "\d+", 2)→ 结果: 456 (返回第二个数字序列)
场景 6:判断文本是否符合格式(REGEXTEST)
=REGEXTEST("13812345678", "^1[3-9]\d{9}$")→ 结果: TRUE (中国手机号格式验证)
场景 7:批量验证邮箱格式
=REGEXTEST(A1, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")→ 合规返回 TRUE,不合规返回 FALSE
场景 8:替换手机号(脱敏处理)
=REGEXREPLACE("手机: 13812345678", "\d{7}(\d{4})", "***$1")→ 结果: 手机: ***45678 (中间7位脱敏)
场景 9:统一日期格式
=REGEXREPLACE("日期: 2024/03/15", "(\d{4})[/\-](\d{2})[/\-](\d{2})", "$1-$2-$3")→ 结果: 日期: 2024-03-15 (统一为横杠分隔)
场景 10:去掉文本中的所有空格
=REGEXREPLACE("张 三 , 北 京", "\s+","")→ 结果: 张三,北京
\s+匹配一个或多个空白字符。
场景 11:提取括号内的内容
=REGEXEXTRACT("订单号(ORDER123)备注(加急)","\(([^)]+)\)", 1)→ 结果: ORDER123 (第一个括号内容)
场景 12:提取中文内容
=REGEXEXTRACT("张三 Beijing 李四 Shanghai","[\u4e00-\u9fa5]+")→ 结果: 张三
[\u4e00-\u9fa5]匹配所有常用汉字。
场景 13:提取英文字母内容
=REGEXEXTRACT("张三Beijing李四","[a-zA-Z]+")→ 结果: Beijing
场景 14:提取 URL 中的协议
=REGEXEXTRACT("https://www.example.com/page","^[a-z]+://")→ 结果: https://
场景 15:提取 URL 中的域名
=REGEXEXTRACT("https://www.example.com/path","://([^/]+)")→ 结果: www.example.com
五、REGEX 正则核心语法速查
基本元字符
|
|
|
|
|---|---|---|
. |
|
a.c
|
\d |
|
\d{11}
|
\D |
|
\D+
|
\w |
|
\w+
|
\s |
|
\s+
|
^ |
|
^1\d
|
$ |
|
\d$
|
\ |
|
\.
|
量词
|
|
|
|
|---|---|---|
* |
|
\d*
|
+ |
|
\d+
|
? |
|
https?
|
{n} |
|
\d{11}
|
{n,} |
|
\d{3,}
|
{n,m} |
|
\d{3,6}
|
字符类
|
|
|
|
|---|---|---|
[abc] |
|
[aeiou]
|
[a-z] |
|
[a-zA-Z]
|
[^abc] |
|
[^0-9]
|
捕获组与引用
|
|
|
|
|---|---|---|
(...) |
|
(abc)
|
$1,$2 |
|
$1
|
六、常见错误处理
|
|
|
|
|---|---|---|
#NAME? |
|
|
#VALUE! |
|
|
#CALC! |
|
|
|
|
|
|
七、版本说明
REGEX 系列函数目前正在向 Microsoft 365 用户分批推送,更新通道为 Beta 或 Monthly Enterprise 通道的用户会率先收到。
尚未收到的用户 可以使用以下替代方案:
# 提取手机号(传统方法)=MID(A1,FIND("1",A1), 11)# 邮箱格式验证(传统方法)=IF(AND(ISNUMBER(FIND("@",A1)), ISNUMBER(FIND(".",A1))), TRUE, FALSE)# 替换文本(SUBSTITUTE)=SUBSTITUTE(A1,"旧文本","新文本")
八、核心公式速查
|
|
|
|---|---|
|
|
=REGEXEXTRACT(文本,"\d{11}") |
|
|
=REGEXEXTRACT(文本,"[a-zA-Z0-9._%+-]+(?=@)") |
|
|
=REGEXEXTRACT(文本,"@[a-zA-Z0-9.-]+") |
|
|
=REGEXEXTRACT(文本,"\d+") |
|
|
=REGEXEXTRACT(文本,"[\u4e00-\u9fa5]+") |
|
|
=REGEXEXTRACT(文本,"[a-zA-Z]+") |
|
|
=REGEXTEST(文本,"^1[3-9]\d{9}$") |
|
|
=REGEXTEST(文本,"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$") |
|
|
=REGEXREPLACE(文本,"\d{7}(\d{4})", "***$1") |
|
|
=REGEXREPLACE(文本,"(\d{4})[/\-](\d{2})[/\-](\d{2})", "$1-$2-$3") |
|
|
=REGEXREPLACE(文本,"\s+", "") |
|
|
=REGEXEXTRACT(文本,"\(([^)]+)\)", 1) |
|
|
=REGEXREPLACE(文本,"关键词1|关键词2", "替换词") |
总结: REGEX 系列函数(REGEXEXTRACT / REGEXTEST / REGEXREPLACE)是 Excel 文本处理的重大升级,让正则表达式的强大能力终于直接走进电子表格。适合处理手机号提取、邮箱验证、文本清洗、格式统一等复杂场景。如果你的 Excel 365 尚未收到更新,建议持续关注 Microsoft 365 更新公告。
如果你觉得这篇有用,欢迎转发给需要的朋友!
夜雨聆风