Excel新函数REGEXP怎么用?操作要点整理
Excel 本身并没有一个单独叫 REGEXP 的函数。大家常说的“REGEXP 新函数”,实际是指 Microsoft 365 新增的三个正则函数:REGEXTEST(判断文本是否符合规则)、REGEXEXTRACT(提取匹配内容)、REGEXREPLACE(按规则替换文本)。平时处理订单号、客户
Excel 本身并没有一个单独叫 REGEXP 的函数。大家常说的“REGEXP 新函数”,实际是指 Microsoft 365 新增的三个正则函数:REGEXTEST(判断文本是否符合规则)、REGEXEXTRACT(提取匹配内容)、REGEXREPLACE(按规则替换文本)。平时处理订单号、客户编号、邮箱、编码这类格式固定的内容,写好匹配模式,对应函数直接上手就行。
本次操作环境是 Microsoft Excel,版本为 Microsoft 365 16.93 桌面版。这几个正则函数是较新推出的功能,如果你用的是 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。写匹配模式时,先拿一个已知样本调通,再批量填充到整列。遇到问题先查三点:软件是否支持函数、正则规则是否太严、捕获组编号是否写错。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。















