正则表达式 (REGEX) 是用于检查文本字符串是否符合给定模式以及提取或替换与给定模式匹配的文本字符串的搜索模式。鉴于其复杂性,本文提供其在 Excel 中使用的简化摘要和示例。
REGEX 函数适用于使用 Windows 或 Mac 版 Microsoft 365 Excel 的用户,以及使用网络版 Excel 的用户。
REGEXTEST:文本模式匹配测试
此函数测试文本字符串是否与给定模式匹配,根据测试结果返回 TRUE 或 FALSE。这是测试数据是否遵循特定模式的好方法。
语法
<code>REGEXTEST(a, b, c)</code>
其中:
REGEXTEST 使用示例
此电子表格包含必须遵循严格结构的产品代码列表。
有效代码包含:
我们需要测试所有产品代码是否都匹配此结构。
因此,在单元格 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}
表示必须正好有三个大写字母。按 Enter 键将此公式应用于 B 列中的所有行后,结果显示只有两个代码有效 (TRUE)。
此示例包含 []
和 {}
等字符的使用。但是,还有许多其他字符(也称为标记)也可用于确定用于执行测试的模式,其中一些将在下面的示例中使用。
REGEXEXTRACT:提取特定文本片段
此函数根据指定的模式返回单元格中部分文本。例如,您可能希望分离数字和文本。
语法
<code>REGEXTEST(a, b, c)</code>
其中:
由于格式化的 Excel 表格无法处理溢出数组,如果您打算在参数 f 中将匹配项作为数组提取,请确保您的数据是普通格式的。
REGEXEXTRACT 使用示例
在此示例中,需要将客户的姓名和电话号码提取到三个单独的列中。
首先关注姓名。在单元格 B2 中,输入以下公式:
<code>=REGEXTEST([@Code],"[xs|s|m|l|xl]-[0-9]{1,2}-[A-Z]{3}",0)</code>
其中:
[A-Z][a-z]
告诉 Excel 要提取任何以大写字母开头后跟小写字母的单词,其中 " " 表示要返回每个模式中一个或多个小写字母。按 Enter 键后,Excel 将成功执行提取并将淡蓝色线添加到单元格 C2 周围,以提醒您它是一个溢出数组。
选择单元格 B2 后,现在可以使用单元格右下角的填充柄将此相对公式复制到其余的详细信息行。
现在,需要使用类似的 REGEXTRACT 公式来提取客户的电话号码。在单元格 D2 中,输入以下公式:
<code>REGEXEXTRACT(d, e, f, g)</code>
其中:
[0-9()]
从零到九的数字提取在圆括号内的数字,其中 " " 提取此模式中的一个或多个数字。[0-9-]
提取字符串中剩余的数字,第二个 "-" 表示分隔电话号码的两个部分的短横线," " 告诉 Excel 如果字符串包含数字,则要提取一个或多个数字。由于 A 列中每个单元格中此模式只有一个实例,因此不需要添加任何其他参数。同样,一旦检查了此公式是否产生预期结果,就可以使用填充柄将其复制到 D 列中的其余单元格。
Excel 中还有其他方法可以提取数据并获得类似的结果,例如使用 TEXTSPLIT 函数或 Excel 的快速填充工具。
REGEXREPLACE:操作数据
此函数获取单元格中的文本并在另一个单元格中创建该数据的新版本。即使函数称为 REGEXREPLACE,它实际上并没有替换其原始位置中的原始文本。
语法
<code>REGEXTEST(a, b, c)</code>
其中:
REGEXREPLACE 使用示例
下面,可以看到 A 列中的一系列姓名。目标是在 B 列中重新创建这些姓名,但使用“姓氏,名字”格式,包括分隔姓名的逗号。
在单元格 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”作为每个单元格的结果。没有在上面的公式中处理参数 k 和 l,因为希望 Excel 替换所有出现(参数 k 的默认值),并且希望替换区分大小写(参数 l 的默认值)。
因为使用的是格式化表格,所以按 Enter 键后,公式将应用于 B 列中的其余单元格。
正则表达式不仅可用于 Excel。实际上,可以使用 REGEX 自动执行计算机上的其他任务,例如修复复制粘贴的 PDF 文本、批量重命名下载的文件、格式化货币、去除 HTML 标记等等。
以上是如何在Excel中使用正则函数的详细内容。更多信息请关注PHP中文网其他相关文章!