Word、Excel、WPS 三套软件里都能碰到"正则"两个字,但入口不同、能做的事差很多。本文把三种入口拆开讲清楚:查找框的通配符能干什么、公式级的 REGEXEXTRACT/REGEXP 能干什么、代码编辑器又能干什么,附上各自的语法对照和踩坑记录。
信息核验时点:2026-11(Excel REGEX 函数已面向 Microsoft 365 Current Channel 推出,WPS REGEXP 函数已在 WPS 365 版本可用)
本文要点
- 一句话定义:Office 套件里用正则有三条路——查找通配符(简化版)、公式函数(真正则)、代码编辑器(完整正则)。
- 核心结论:Word 查找框的通配符只支持
?*[]@{n}等基础语法,不能写\d、^、$;Excel 的 REGEXEXTRACT 和 WPS 的 REGEXP 都是真正则,但函数名和参数位置完全不同。 - 适用场景:文档内批量改格式用查找通配符;表格里提取/校验用公式函数;多文件批量处理用 VS Code 或 Notepad++。
- 适用人群:经常处理合同编号、手机号、日期格式等文本规则的办公用户。
- 短板/边界:Excel 三个 REGEX 函数仅 Microsoft 365 订阅可用,永久授权版(2021/2024)不支持;WPS 表格的 REGEXP 函数需要 WPS 365 版本;Word 查找框的通配符不是真正则,无法使用环视和反向引用。
三种入口分别在哪?
Office 套件里的"正则"散布在三个完全不同的位置,各自的功能边界差很多。
- 查找对话框的通配符:Word 按
Ctrl+H打开"查找和替换",点"更多"勾选"使用通配符"。WPS 文字入口相同。这里用的是一套简化版通配符语法,不是真正的正则表达式。 - 单元格公式函数:Excel 有
REGEXEXTRACT、REGEXREPLACE、REGEXTEST三个函数;WPS 表格有REGEXP一个函数。这里用的是真正的正则表达式。 - 代码编辑器的查找替换:VS Code 按
Ctrl+H、Notepad++ 按Ctrl+H,正则引擎完整,支持 PCRE 或 JavaScript 语法。PowerShell 的-match和-replace操作符也属于这一类。
Word 查找通配符够不够用?
Word 的"使用通配符"模式支持以下语法(出处):
| 语法 | 含义 |
|---|---|
? | 任意单个字符 |
* | 任意长度字符串 |
[xyz] | 指定字符之一 |
[a-z] | 字符范围 |
[!x-z] | 排除范围 |
@ | 前一字符重复一次或多次 |
{n} | 恰好 n 次 |
{n,m} | n 到 m 次 |
() | 分组 |
举个例子:查找 ([0-9]{3})-@([0-9]{4}) 可以匹配 123-4567 这类号码,替换里写 \1-\2 可以提取分组。
关闭通配符时,Word 用特殊代码:^? 代表任意字符、^# 代表数字、^$ 代表字母(出处同上)。
不能做的事:
- 没有
\d、\w、\s等字符类简写 - 没有
^(行首)和$(行尾)锚点 - 没有
|(或)运算 - 没有环视
(?=...)和(?<=...) @是量词(前一字符重复一次或多次),不是正则里的普通@字符- 开启通配符后
^p不生效,段落标记要写^13
Excel 的 REGEXEXTRACT 怎么用?
Excel 在 2024 年 5 月公布了三个正则函数(出处),2025 年面向 Microsoft 365 订阅用户逐步推出,使用 PCRE2 正则引擎。永久授权版(Excel 2021、2024)不支持。
三个函数的语法(REGEXEXTRACT 出处):
REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])
REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])
REGEXTEST(text, pattern, [case_sensitivity])参数说明:
text:源文本或单元格引用pattern:正则表达式(双引号包裹)return_mode(仅 REGEXEXTRACT):0返回第一个匹配(默认),1返回全部匹配组成数组,2返回第一个匹配的捕获组数组case_sensitivity:0区分大小写(默认),1不区分
实际例子:
=REGEXEXTRACT("订单号ABC12345", "[A-Z]+\d+")
→ "ABC12345"
=REGEXREPLACE("13812345678", "(\d{3})\d{4}(\d{4})", "$1****$2")
→ "138****5678"
=REGEXTEST("310101199001011234", "^\d{17}[\dXx]$")
→ TRUE注意:三个函数的返回值都是文本类型。需要数值参与计算时,外层套 VALUE() 转换。
WPS 表格的 REGEXP 有什么不同?
WPS 表格没有拆成三个函数,而是用一个 REGEXP 函数通过 mode 参数区分三种操作。
REGEXP(text, pattern, [mode], [replacement])mode = 0(默认):提取第一个匹配文本,相当于 Excel 的 REGEXEXTRACTmode = 1:返回 TRUE 或 FALSE,相当于 Excel 的 REGEXTESTmode = 2:替换,replacement参数必填,相当于 Excel 的 REGEXREPLACE
替换时反向引用写 $1、$2:
=REGEXP("张三-13800138000", "([^\-]+)-(\d+)", 2, "$2-$1")
→ "13800138000-张三"WPS 的 REGEXP 支持标准正则语法,包括环视 (?=...) 和 (?<=...)(WPS 365 帮助)。
与 Excel 的关键区别:Excel 用三个独立函数各司其职,WPS 用一个函数加 mode 参数切换;Excel 的 return_mode 参数可以返回全部匹配数组,WPS 的 mode 0 只返回第一个匹配。
代码编辑器里做正则有什么优势?
VS Code 和 Notepad++ 的查找替换使用完整的 PCRE 或 JavaScript 正则引擎,语法不受限。
VS Code 查找框直接写正则,替换框支持 $1、$2 反向引用。右键选"在文件中替换"可以批量改整个项目。
Notepad++ 查找对话框选"正则表达式"模式,支持 \d、\w、\s、^、$、|、()、{n,m} 等全部语法。
PowerShell 用 -match 和 -replace 操作符走 .NET 正则引擎,适合脚本化批处理:
"订单号ABC12345" -match "[A-Z]+\d+"
→ True
"13812345678" -replace "(\d{3})\d{4}(\d{4})", '$1****$2'
→ 138****5678代码编辑器的优势在于:多行文本、多文件批量、完整正则语法、可以配合脚本自动化。缺点是处理 .docx 文件需要先导出纯文本。
三种入口的能力边界对照
下表比较三种入口在六个维度上的差异:
| 入口 | 引擎 | \d \w | ^ $ | 分组捕获 | 环视 |
|---|---|---|---|---|---|
| Word 查找通配符 | 简化通配符 | 不支持 | 不支持 | 支持 () | 不支持 |
| WPS 文字查找通配符 | 简化通配符 | 不支持 | 不支持 | 支持 () | 不支持 |
| Excel REGEXEXTRACT | PCRE2 | 支持 | 支持 | 支持 | 支持 |
| WPS 表格 REGEXP | 标准正则 | 支持 | 支持 | 支持 | 支持 |
| VS Code 查找替换 | PCRE/JS | 支持 | 支持 | 支持 | 支持 |
PowerShell -match | .NET 正则 | 支持 | 支持 | 支持 | 支持 |
Word 和 WPS 文字的查找通配符适合简单的模式匹配,比如找"三位数字加一个横杠加四位数字"。涉及 \d、锚点、环视这类需求时,必须切到公式函数或代码编辑器。
常见问题
Word 通配符里写 \d 为什么没反应?
Word 查找框的通配符模式不支持 \d、\w、\s 等正则简写类。要匹配数字,写 [0-9] 或 ^#(关闭通配符时)。如果确实需要在 Word 里跑真正则,可以用 VBA 宏调用 VBScript.RegExp 对象,或者把文本复制到 VS Code 或本站的文本清理工具里处理。
Excel 里 REGEXEXTRACT 报 #NAME? 怎么解决?
三个原因。第一,版本不对——REGEXEXTRACT 仅 Microsoft 365 订阅可用,Excel 2021 和 2024 永久版不支持。第二,公式名拼错或参数格式不对——pattern 参数要用双引号包裹正则,例如 =REGEXEXTRACT(A1, "\d+")。第三,返回值是文本——需要参与数值运算时套 VALUE()。
WPS 的 REGEXP 和 Excel 的 REGEXEXTRACT 能互相替代吗?
功能上可以,写法不同。WPS 用一个 REGEXP 函数加 mode 参数切换提取/测试/替换;Excel 用三个独立函数。WPS 的 mode = 0 只返回第一个匹配,Excel 的 return_mode = 1 可以返回全部匹配组成的数组。如果你的工作簿需要在两套软件之间互通,建议用两边都支持的写法,或者用 Python 脚本配合本站的文件哈希工具校验批量处理结果。
本文数据核验于 2026-11,以 Microsoft Support 与 WPS 365 帮助页为准。