0Pricing
Excel Formulas Academy · 课时

使用 REGEXEXTRACT 提取模式

提取字符串中与某个模式匹配的部分

使用 REGEXEXTRACT 提取模式 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。

从判断是否存在到提取匹配内容

REGEXMATCH 会告诉您模式是否存在。很多时候,您需要的是匹配到的文本本身,例如从 Order #4821 中提取数字,或从电子邮件中提取域名。

这正是 REGEXEXTRACT 的作用。它会找到文本中第一个与模式匹配的部分,并将该部分作为单元格的值返回。

这也是 Google 表格中的一个函数。它是从混乱的导入数据中提取结构化内容的最简洁方式之一。

REGEXEXTRACT 语法

REGEXEXTRACT(text, pattern) 会返回 text 中与 pattern 匹配的第一个子字符串。

如果没有任何匹配内容,它会返回 #N/A 错误,而不是空白,这一点很重要。

下面的公式会从 A2 中提取第一段连续数字。对于 Order 4821,它会返回 4821。

=REGEXEXTRACT(A2, "\d+")

返回文本,而不是数字

REGEXEXTRACT 始终返回文本,即使匹配到的字符是数字。因此,4821 会以文本字符串的形式返回,而不是可以直接求和的数字。

要将其转换为真正的数字,请将它放入 VALUE 中。下面的公式会提取数字并进行转换,这样您就可以对结果执行数学运算。

=VALUE(REGEXEXTRACT(A2, "\d+"))

提取字母或代码

模式并不局限于数字。要提取由大写字母组成的前缀,请使用字符类和量词。

下面的公式会从类似 INV2024 的代码中提取开头的字母,并返回 INV。[A-Z]+ 表示连续的一个或多个大写字母。

=REGEXEXTRACT(A2, "[A-Z]+")

实例:拆分产品代码

假设 A2 包含 SKU-4821-RED,而您只想提取中间的数字。您可以在模式中加入周围的内容来描述数字的位置。

下面的公式会查找两个连字符之间的数字,并返回 4821。字面意义上的连字符会引导匹配引擎找到正确的数字序列。

=REGEXEXTRACT(A2, "-(\d+)-")

捕获组仅返回所需部分

请注意最后一个公式中的括号:(\d+)。这就是一个捕获组。

当模式中包含捕获组时,REGEXEXTRACT 只返回括号内的内容,而不是完整匹配结果。因此,-(\d+)- 会返回 4821,并去掉连字符。

捕获组让您可以匹配周围的上下文以提高准确性,同时只提取您需要的部分。

=REGEXEXTRACT(A2, "-(\d+)-")

示例:提取电子邮件域名

对于 sam@coddykit.com,您需要提取域名 coddykit.com。先匹配 @,然后捕获它后面直到字符串末尾的所有内容。

下面的公式会返回 A2 中位于 @ 符号之后的部分。(.+) 会捕获一个或多个任意字符,而 $ 会将匹配限定到字符串末尾。

=REGEXEXTRACT(A2, "@(.+)$")

使用锚点实现精确提取

锚点可以帮助您从已知位置提取一部分内容。若只想捕获第一个单词,请将匹配锚定到开头,并在第一个空格处停止。

下面的公式会捕获 A2 开头连续的非空格字符。对于 John Smith,它会返回 John。[^ ]+ 表示一个或多个非空格字符。

=REGEXEXTRACT(A2, "^([^ ]+)")

防止无匹配

由于提取失败会抛出 #N/A,如果一列中包含混合数据,将公式向下填充可能会让表格充满错误。

请将调用包在 IFERROR 中,以提供整洁的备用结果。下面的公式会在找到数字时返回数字;如果没有数字,则返回空字符串。

=IFERROR(REGEXEXTRACT(A2, "\d+"), "")

使用选择分支进行提取

竖线 | 表示或。它可以让一个模式匹配多个选项。当代码可能以不同前缀开头时,这个功能非常有用。

下面的公式会提取 A2 中出现的状态词:OPEN、CLOSED 或 HOLD。它会返回最先找到的一个。

=REGEXEXTRACT(A2, "OPEN|CLOSED|HOLD")

批量提取整列数据

将 REGEXEXTRACT 应用于整列导入数据时,它的优势就能充分发挥出来。每一行都会提取出匹配的部分,并放入一个整洁的新列中,方便您排序或分析。

假设 A 列中存放着类似 Order 4821 - shipped 的订单字符串。将下面的公式向下填充到 B 列后,它会从每一行中只提取订单号,让混乱的源文本变成一列整齐、看起来像数字的数据。

=REGEXEXTRACT(A2, "Order (\d+)")

快速检查

检查您对匹配内容提取的掌握情况。

回顾:提取匹配部分

您已经学会,REGEXEXTRACT(text, pattern) 会在 Google 表格中返回第一个匹配的子字符串。要点如下:

  • 结果始终是文本;如需数字,请使用 VALUE 进行转换
  • 括号中的捕获组只会返回其中的部分内容
  • 没有匹配结果时会返回 #N/A,因此请使用 IFERROR 进行保护
  • | 可以让一个模式匹配多个选项

接下来,您将不再只是读取文本,而是开始使用 REGEXREPLACE 直接改写文本。

常见问题解答

「使用 REGEXEXTRACT 提取模式」课时是免费的吗?

是的 — 「使用 REGEXEXTRACT 提取模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。

「使用 REGEXEXTRACT 提取模式」这节课中我会学到什么?

提取字符串中与某个模式匹配的部分 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Excel Formulas Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用 REGEXEXTRACT 提取模式」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Excel Formulas Academy 课中编写并运行代码吗?

能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 REGEXMATCH 测试模式
  2. 使用 REGEXEXTRACT 提取模式
  3. 使用 REGEXREPLACE 替换模式
  4. 拆分并清理杂乱数据
← 返回 Excel Formulas Academy