一招提取订单号:WPS和Excel正则函数用法有差异,WPS写函数的人没事找事!


=REGEXP(A1,”[\d-]+”)

而在Excel里的写法确为:
=REGEXEXTRACT(A1,”[\d-]+”)

问DeepSeek说法也不太对:

不得已,我跟DS指正了一下

WPS官方编写正则函数的人,真是没事找事,为什么不把正则函数的名字跟微软excel统一成一样的呢?
你指望微软这个正则函数名跟你wps保持一致吗,我想他们那么傲慢,是不可能跟你保持一致的呀。
你wps非要特立独行,我也理解,但是这不是凭空增加用户负担吗,搞得使用了这个函数的表格无法与微软excel兼容啊!!!
在日常工作中,尤其是处理电商退款、物流信息时,我们常常会遇到这样的情况:顾客已经退款,但系统自动操作后,仓库仍然发出了货物,而文本记录中混杂着订单号、退款单号等长串数字。比如下面这段文本:
已退款 2700207-013023383971563 顾客已退款但是收到货品(系统自动退款,武汉仓库未通知快递单号同步失败)
我们的目标是从这段文字中快速提取出那个带短横线的订单号 2700207-013023383971563。如果手动复制粘贴,不仅效率低,还容易出错。今天就来教大家用 WPS 和 Excel 中的正则函数,一键提取这类编号。
什么是正则表达式?
正则表达式(Regular Expression)是一种强大的文本匹配工具,可以用简短的符号规则,快速找到符合特定模式的字符串。比如我们要找的订单号是由一串数字 + 一个短横线 + 另一串数字组成的,就可以用正则表达式来描述它。
问题分析
上面例子中的编号 2700207-013023383971563 有两个特点:
-
全部由数字和短横线
-组成; -
短横线只有一条,将数字分成前后两段。
因此,我们可以用两种正则表达式来匹配:
-
\d+-\d+—— 明确匹配“一串数字-一串数字” -
[\d-]+—— 匹配连续的“数字或短横线”
后者更简洁,能直接提取所有数字和短横线组成的连续字符,正好对应我们的订单号。
WPS 中的正则函数:REGEXP
在 WPS 表格(最新版)中,内置了 REGEXP 函数用于正则提取。语法为:
text
REGEXP(文本, 正则表达式, [匹配模式], [替换内容])
我们只需要提取第一个匹配项,所以可以省略后面参数。在 B2 单元格输入以下公式(假设原始文本在 A2):
text
=REGEXP(A2, "[\d-]+")
注意:部分旧版 WPS 可能需要指定第三个参数为 1,表示返回第一个匹配,即 =REGEXP(A2, "[\d-]+", 1)。如果公式返回错误,可以尝试加上这个参数。
Excel 中的正则函数:REGEXEXTRACT
Microsoft Excel 在 Office 365 及 Excel 2021 之后的版本中,增加了 REGEXEXTRACT 函数。用法与 WPS 类似:
text
=REGEXEXTRACT(A2, "[\d-]+")
该函数默认返回第一个匹配到的字符串。如果需要提取全部匹配,可以使用第三个参数(如 =REGEXEXTRACT(A2, "[\d-]+", 1) 返回所有匹配并自动溢出)。
两个函数的区别
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
提醒:千万不要在 WPS 中用 REGEXEXTRACT,也不要在 Excel 中用 REGEXP,否则会得到 #NAME? 错误。
正则表达式解析
我们使用的 [\d-]+ 看起来很简洁,但包含三个部分:
-
[ ]:字符集,表示匹配括号内的任意一个字符。 -
\d:代表任意数字(0-9)。 -
-:短横线本身(在字符集中不需要转义)。 -
+:量词,表示前面的字符出现一次或多次。
合起来就是:匹配一个或多个连续的数字或短横线。因为我们的订单号刚好由数字和一条短横线组成,所以整个字符串都会被匹配到。
如果你觉得这个规则太宽泛(比如可能会匹配到电话号码 123-4567-8901),可以改用更精确的 \d+-\d+,它要求必须是一串数字、一个短横线、再一串数字,中间不能有其他字符。
例如:
-
\d+-\d+能匹配2700207-013023383971563,但不会匹配123-456-7890(因为有两个短横线)。 -
[\d-]+则会匹配任何数字和短横线组合,包括123-456-7890。
根据你的实际数据情况选择合适的表达式即可。
实际操作演示
假设你的数据在 A 列,从 A2 开始:
|
|
|---|
|
|
|
|
|
|
在 B2 输入公式,然后向下填充:
WPS:=REGEXP(A2, "[\d-]+")Excel:=REGEXEXTRACT(A2, "[\d-]+")
结果 B 列会自动提取出订单号:
|
|
|---|
|
|
|
|
|
|
常见问题
-
公式返回 #NAME? 错误说明函数名称写错了,或者你的软件版本不支持该函数。请确认软件版本,WPS 用户请检查是否为最新版;Excel 用户需使用 Office 365 或 Excel 2021 以上。
-
提取结果不完整可能正则表达式匹配的范围不够。比如用
\d+-\d+时,如果订单号前后有空格,不会影响匹配;但如果订单号中有多个短横线,则无法匹配。可以尝试改用[\d-]+或调整正则规则。 -
提取出了多个内容如果文本中有多个类似格式的字符串(比如同时有订单号和电话号码),
[\d-]+会匹配每一个。此时可以改用更精确的规则,或者用REGEXEXTRACT的第三个参数控制返回全部匹配,再通过其他函数取需要的那个。 -
WPS 老版本没有 REGEXP 怎么办?可以尝试用“查找”功能结合分列,或者升级 WPS 到最新版。WPS 2019 之后的部分版本其实已经内置了正则函数,如果没有,建议更新。
总结
通过正则函数提取特定模式的字符串,可以极大提高工作效率。无论是 WPS 还是 Excel,都提供了便捷的正则函数,只是函数名略有差异:
-
WPS 用 REGEXP
-
Excel 用 REGEXEXTRACT
而正则表达式 [\d-]+ 或 \d+-\d+ 都能轻松匹配常见的订单号、退款单号。下次再遇到类似的文本处理需求,别再手动复制了,试试用公式一键搞定吧!
如果你在使用过程中遇到任何问题,欢迎留言交流。我们会持续分享更多办公小技巧,助你高效工作!
夜雨聆风
