首页 > 软件教程 > 办公软件 > 如何在Excel中使用正则函数

如何在Excel中使用正则函数

Susan Sarandon
发布: 2025-02-06 22:28:14
原创
283 人浏览过

Excel 正则表达式函数速览:REGEXTEST、REGEXEXTRACT 和 REGEXREPLACE

正则表达式 (REGEX) 是用于检查文本字符串是否符合给定模式以及提取或替换与给定模式匹配的文本字符串的搜索模式。鉴于其复杂性,本文提供其在 Excel 中使用的简化摘要和示例。

REGEX 函数适用于使用 Windows 或 Mac 版 Microsoft 365 Excel 的用户,以及使用网络版 Excel 的用户。

REGEXTEST:文本模式匹配测试

此函数测试文本字符串是否与给定模式匹配,根据测试结果返回 TRUE 或 FALSE。这是测试数据是否遵循特定模式的好方法。

语法

<code>REGEXTEST(a, b, c)</code>
登录后复制
登录后复制
登录后复制

其中:

  • a (必需) 是要测试的文本、值或包含文本的单元格引用。
  • b (必需) 是用于执行测试的模式。
  • c (可选) 如果希望测试区分大小写,则为 0;否则为 1。

REGEXTEST 使用示例

此电子表格包含必须遵循严格结构的产品代码列表。

How to Use the REGEX Functions in Excel

有效代码包含:

  • 产品尺寸的小写表示形式(“xs”表示特小,“s”表示小,“m”表示中等等),
  • 表示产品材料的一位或两位数字,
  • 表示产品制造地点的三个大写字母,以及
  • 三个部分之间用短横线分隔。

我们需要测试所有产品代码是否都匹配此结构。

因此,在单元格 B2 中,输入以下公式:

<code>=REGEXTEST([@Code],"[xs|s|m|l|xl]-[0-9]{1,2}-[A-Z]{3}",0)</code>
登录后复制
登录后复制
登录后复制

其中:

  • [@Code] 是包含要测试的代码的列的结构化引用。
  • [xs|s|m|l|xl] 是要测试的产品代码的第一部分,竖线表示“或”。
  • [0-9]{1,2} 是要测试的产品代码的第二部分,[0-9] 表示任何一位数字, {1,2} 表示可以有一位或两位数字。
  • [A-Z]{3} 是要测试的产品代码的第三部分,[A-Z] 表示任何大写字母, {3} 表示必须正好有三个大写字母。
  • 要测试的代码的三个部分用短横线分隔。
  • 0 是公式中的最后一个参数,它告诉 Excel 测试区分大小写。

按 Enter 键将此公式应用于 B 列中的所有行后,结果显示只有两个代码有效 (TRUE)。

How to Use the REGEX Functions in Excel

  • m-2-UK 无效(由 FALSE 结果指示),因为国家代码只包含两个大写字母。
  • xl-714-AUS 无效,因为材料代码包含三位数字。
  • S-5-USA 无效,因为尺寸代码是大写的。

此示例包含 []{} 等字符的使用。但是,还有许多其他字符(也称为标记)也可用于确定用于执行测试的模式,其中一些将在下面的示例中使用。

REGEXEXTRACT:提取特定文本片段

此函数根据指定的模式返回单元格中部分文本。例如,您可能希望分离数字和文本。

语法

<code>REGEXTEST(a, b, c)</code>
登录后复制
登录后复制
登录后复制

其中:

  • d (必需) 是要从中提取文本的文本、值或单元格引用。
  • e (必需) 是要提取的模式。
  • f (可选) 如果只想提取第一个匹配项,则为 0;如果要将所有适用的匹配项作为数组提取,则为 1;如果要从第一个匹配项提取组,则为 2。
  • g (可选) 如果希望提取区分大小写,则为 0;否则为 1。

由于格式化的 Excel 表格无法处理溢出数组,如果您打算在参数 f 中将匹配项作为数组提取,请确保您的数据是普通格式的。

REGEXEXTRACT 使用示例

在此示例中,需要将客户的姓名和电话号码提取到三个单独的列中。

How to Use the REGEX Functions in Excel

首先关注姓名。在单元格 B2 中,输入以下公式:

<code>=REGEXTEST([@Code],"[xs|s|m|l|xl]-[0-9]{1,2}-[A-Z]{3}",0)</code>
登录后复制
登录后复制
登录后复制

其中:

  • A2 是包含要提取数据的单元格。
  • [A-Z][a-z] 告诉 Excel 要提取任何以大写字母开头后跟小写字母的单词,其中 " " 表示要返回每个模式中一个或多个小写字母。
  • 1 表示希望将上述模式的每个示例作为数组分离到各个单元格中(换句话说,第一个姓名在单元格 B2 中,第二个姓名在单元格 C2 中)。如果省略此参数,Excel 将只在单元格 B2 中返回第一个匹配项(第一个姓名)。

按 Enter 键后,Excel 将成功执行提取并将淡蓝色线添加到单元格 C2 周围,以提醒您它是一个溢出数组。

How to Use the REGEX Functions in Excel

选择单元格 B2 后,现在可以使用单元格右下角的填充柄将此相对公式复制到其余的详细信息行。

How to Use the REGEX Functions in Excel

现在,需要使用类似的 REGEXTRACT 公式来提取客户的电话号码。在单元格 D2 中,输入以下公式:

<code>REGEXEXTRACT(d, e, f, g)</code>
登录后复制

其中:

  • A2 是包含要提取数据的单元格。
  • [0-9()] 从零到九的数字提取在圆括号内的数字,其中 " " 提取此模式中的一个或多个数字。
  • [0-9-] 提取字符串中剩余的数字,第二个 "-" 表示分隔电话号码的两个部分的短横线," " 告诉 Excel 如果字符串包含数字,则要提取一个或多个数字。

由于 A 列中每个单元格中此模式只有一个实例,因此不需要添加任何其他参数。同样,一旦检查了此公式是否产生预期结果,就可以使用填充柄将其复制到 D 列中的其余单元格。

How to Use the REGEX Functions in Excel

Excel 中还有其他方法可以提取数据并获得类似的结果,例如使用 TEXTSPLIT 函数或 Excel 的快速填充工具。

REGEXREPLACE:操作数据

此函数获取单元格中的文本并在另一个单元格中创建该数据的新版本。即使函数称为 REGEXREPLACE,它实际上并没有替换其原始位置中的原始文本。

语法

<code>REGEXTEST(a, b, c)</code>
登录后复制
登录后复制
登录后复制

其中:

  • h (必需) 是要替换的文本、值或包含文本的单元格引用。
  • i (必需) 是要替换的模式。
  • j (必需) 是要创建的替换内容。
  • k (可选) 是要替换的模式的出现次数。
  • l (可选) 如果希望替换区分大小写,则为 0;否则为 1。

REGEXREPLACE 使用示例

下面,可以看到 A 列中的一系列姓名。目标是在 B 列中重新创建这些姓名,但使用“姓氏,名字”格式,包括分隔姓名的逗号。

How to Use the REGEX Functions in Excel

在单元格 B2 中,输入以下公式:

<code>=REGEXTEST([@Code],"[xs|s|m|l|xl]-[0-9]{1,2}-[A-Z]{3}",0)</code>
登录后复制
登录后复制
登录后复制

其中:

  • [@Client name] 引用包含要影响的数据的列。
  • [A-Z][a-z] 在公式中包含两次(并用空格分隔),告诉 Excel 要获取包含大写字母后跟一个或多个小写字母的两个文本字符串。
  • , 告诉 Excel 要反转这两个文本字符串的顺序,并用逗号和空格分隔。如果不包含美元符号,Excel 将只返回“2, 1”作为每个单元格的结果。

没有在上面的公式中处理参数 kl,因为希望 Excel 替换所有出现(参数 k 的默认值),并且希望替换区分大小写(参数 l 的默认值)。

因为使用的是格式化表格,所以按 Enter 键后,公式将应用于 B 列中的其余单元格。

How to Use the REGEX Functions in Excel


正则表达式不仅可用于 Excel。实际上,可以使用 REGEX 自动执行计算机上的其他任务,例如修复复制粘贴的 PDF 文本、批量重命名下载的文件、格式化货币、去除 HTML 标记等等。

以上是如何在Excel中使用正则函数的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板