一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Excel新函数REGEXP怎么用:操作要点整理

时间:2026-07-11 12:57:46 编辑:袖梨 来源:一聚教程网

excel 本身没有单独叫 regexp 的正式函数,大家平时说的「regexp 新函数」,其实是 microsoft 365 新增的三个正则相关函数:regextest 用来判断文本是否符合指定规则,regexextract 用来提取匹配到的内容,regexreplace 用来按规则替换文本。平时处理订单号、客户编号、邮箱、编码这类格式固定的内容,先写好匹配模式,选对应的函数用就行。

本次操作环境:Microsoft Excel,版本为 Microsoft 365 16.93 桌面版。正则函数是 Microsoft 365 推出的较新功能,如果你用的是 WPS 或者旧版 Excel,得先确认软件本身支不支持这几个函数。

第一步:准备示例文本和正则模式

先把所有要处理的文本放到同一列,旁边列好你要判断、提取、替换的目标。这次示例用订单号、客户编号、产品型号和邮箱当素材,模式里的 d 代表任意数字,{4} 代表前面的规则要连续出现 4 次,^$ 分别限定从文本开头、结尾做匹配。

如果只是要检查文本里「有没有某段内容」,匹配模式可以写宽松一点;但要判断整格内容是不是完全符合指定格式,就得加上开头和结尾的限定。比如订单号示例 ^A-d{4}-d{4}$ 的含义是:文本必须以 A- 开头,后面接4位数字,再跟一个短横线加4位数字。

第二步:用 REGEXTEST 判断是否匹配

在结果单元格输入 =REGEXTEST(A2,"^A-d{4}-d{4}$"),Excel 会直接返回 TRUE 或者 FALSE。TRUE 代表 A2 里的文本完全符合这个订单号格式,FALSE 代表前缀、位数、分隔符或者内容完整性任意一项不满足要求。

REGEXTEST 非常适合做格式校验,比如核对员工编号、合同编号、客户编号、邮箱是不是符合规范。它只会返回「匹配/不匹配」的结果,不会把具体内容提出来,需要提取特定片段的时候换用 REGEXEXTRACT 就行。

第三步:用 REGEXEXTRACT 提取匹配内容

在客户编号提取列输入 =REGEXEXTRACT(A2,"KH-d{4}-d{4}"),就能从「华东-张三-KH-2026-0710」这类混杂的文本里单独把客户编号取出来。模式里的 KH- 是固定前缀,后面两段 d{4} 分别匹配4位数字。

REGEXEXTRACT 还可以搭配捕获组使用,比如公式 =REGEXEXTRACT(A4,"@(.+)$",2) 就能从邮箱里提取 @ 后面的域名,第三个参数填2的时候,返回的是第一个匹配结果里的捕获组内容,而不是完整的匹配文本。

第四步:用 REGEXREPLACE 替换或脱敏

想要把客户编号最后四位替换成星号,可以输入公式 =REGEXREPLACE(A2,"(d{3})d{4}(d{4})","$1****$2")。这里用括号把不需要替换的前半段编号存起来,后面替换文本里直接用 $1 引用这段内容就行。

REGEXREPLACE 不光能用来做信息脱敏,还能用来清洗文本。比如 =REGEXREPLACE(A3,"s+"," ") 可以把连续的多个空格合并成一个,=REGEXREPLACE(A4,"^编号:","") 可以直接删掉文本开头的固定中文前缀。

语法和参数怎么记

函数 基础语法 返回结果 常用场景
REGEXTEST =REGEXTEST(text, pattern, [case_sensitivity]) TRUE 或 FALSE 判断编号、客户编号、邮箱等格式是否匹配
REGEXEXTRACT =REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity]) 匹配到的文本或捕获组 从混合文本中提取订单号、客户编号、域名
REGEXREPLACE =REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity]) 替换后的文本 脱敏、去前缀、清理空格、统一格式

常用正则符号速查

符号 含义 示例
d 任意数字 d{4} 匹配 4 位数字
. 任意单个字符 A. 可匹配 A1、AB
* 出现 0 次或多次 s* 匹配可有可无的空白
+ 出现 1 次或多次 s+ 匹配连续空格
{n} 固定出现 n 次 d{4} 匹配 4 位数字
[] 字符范围 [A-Z] 匹配大写字母
() 捕获组 (d{3}) 捕获前三位数字
^ / $ 开头 / 结尾 ^A 限制以 A 开头

常见错误和处理办法

现象 可能原因 处理办法
#NAME? 当前 Excel 不支持该函数,或函数名拼错 确认 Microsoft 365 版本是否已更新,函数名用 REGEXTEST、REGEXEXTRACT、REGEXREPLACE
#N/A 或空结果 模式没有匹配到文本 先放宽模式测试,再逐步加 ^$、位数限制
结果只提到一部分 模式写得过窄,或捕获组参数返回了组内容 检查括号位置和 return_mode,确认要返回完整匹配还是某个捕获组
替换结果不对 捕获组编号引用错了 REGEXREPLACE 里按括号顺序使用 $1$2

扩展示例

需求 公式 说明
判断客户编号 =REGEXTEST(A2,"^KH-d{4}-d{4}$") 适合录入前做格式检查
提取订单号 =REGEXEXTRACT(A2,"A-d{4}-d{4}") 从备注、流水、邮件标题中取编号
提取邮箱域名 =REGEXEXTRACT(A2,"@(.+)$",2) 用捕获组只返回 @ 后面的内容
压缩连续空格 =REGEXREPLACE(A2,"s+"," ") 清理复制来的名单、型号、地址
编号脱敏 =REGEXREPLACE(A2,"(KH-d{4})-d{4}","$1-****") 对外发清单前隐藏末段编号

三个函数分开记就很清楚:要判断格式合不合规,用 REGEXTEST;要把指定片段从文本里拿出来,用 REGEXEXTRACT;要改写替换文本内容,用 REGEXREPLACE。写匹配模式的时候先拿一个已知的样本调通,再批量填充到整列,要是出问题先检查三点:软件支不支持函数、正则规则是不是写太严、捕获组的编号有没有写错。

热门栏目