使用 REGEXMATCH 测试模式
检查文本是否匹配某个模式,并返回 TRUE 或 FALSE
使用 REGEXMATCH 测试模式 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
为什么模式优于普通搜索
有时,您并不想检查某个完全相同的单词,而是想提出更智能的问题,例如这个单元格是否包含任何数字?或者这是否符合有效电子邮件的格式?
正则表达式(regex)是一种简短的模式语言,用于描述文本的形状。Google 表格提供了三个函数来使用它:REGEXMATCH、REGEXEXTRACT 和 REGEXREPLACE。
本课重点介绍第一个函数。REGEXMATCH 只回答一个是或否的问题:文本是否匹配该模式?
REGEXMATCH 语法
REGEXMATCH 接受两个参数:要检查的文本和要查找的模式。如果在文本中的任意位置找到该模式,它就返回 TRUE,否则返回 FALSE。
请注意:此函数属于Google 表格。Excel 使用不同的工具,因此本课内容完全针对 Google 表格。
最简单的模式就是一段字面文本。下面的公式会检查 A2 单元格是否包含单词 cat。
=REGEXMATCH(A2, "cat")匹配区分大小写
默认情况下,正则表达式匹配会区分大写和小写。模式 cat 不会匹配文本 CAT。
如果要匹配任意一种大小写,可以在方括号中列出选项。[Cc]at 可以匹配 Cat 和 cat。
如果 A2 包含首字母为任意大小写形式的 cat,下面的公式就会返回 TRUE。
=REGEXMATCH(A2, "[Cc]at")锚点:开头和结尾
正则表达式提供了锚点,用于指定模式必须位于文本的哪个位置。
^表示文本的开头$表示文本的结尾
没有锚点时,文本中任意位置的匹配都算成功。使用锚点后,您可以控制匹配位置。下面的公式仅当 A2 以 INV 开头时才返回 TRUE,这对于识别发票代码很有用。
=REGEXMATCH(A2, "^INV")用于数字的字符类
字符类描述一组允许使用的字符。最常用的快捷写法是 \d,表示 0 到 9 中的任意一个数字。
下面的模式会询问:A2 中是否至少包含一个数字?+ 表示一个或多个,因此对于 order7 会返回 TRUE,对于 hello 会返回 FALSE。
=REGEXMATCH(A2, "\d+")实例:查找包含数字的单元格
假设 A 列存放产品名称。有些名称包含类似 Shirt 12 的尺寸,有些则不包含。您希望为包含数字的单元格生成 TRUE/FALSE 标记。
将下面的公式向下拖动到 B 列。包含任意数字的行会显示 TRUE,纯文本行会显示 FALSE。然后,您就可以按这一列进行筛选。
=REGEXMATCH(A2, "\d")常用的可复用字符类
以下几个快捷写法可以满足大多数需求:
\d任意数字\w任意字母、数字或下划线\s任意空白字符,例如空格或制表符.任意单个字符
您也可以创建自己的字符类。[A-Z] 表示任意大写字母,[a-z] 表示任意小写字母。下面的公式会检查 A2 是否包含大写字母。
=REGEXMATCH(A2, "[A-Z]")量词控制重复次数
量词规定前面的内容可以重复多少次:
+一个或多个*零个或多个?零个或一个(可选){3}恰好三个
要检查 A2 从开头到结尾是否为五位数的 ZIP 代码,请结合锚点和精确量词,如下面的示例所示。
=REGEXMATCH(A2, "^\d{5}$")实例:验证电子邮件格式
您可以标记看起来像电子邮件地址的单元格。一种粗略但实用的模式是:一些字符、一个 @、更多字符、一个句点,然后是几个字母。
对于 sam@site.com,下面的公式会返回 TRUE;对于 not-an-email,会返回 FALSE。它并不能实现完美验证,但可以在联系人列表中发现明显的错误。
=REGEXMATCH(A2, "^[\w.]+@[\w.]+\.\w{2,}$")将 REGEXMATCH 与 IF 结合使用
由于 REGEXMATCH 返回 TRUE 或 FALSE,因此可以直接放入 IF 中。这样,您就可以显示友好的提示,而不是直接显示布尔值。
下面的公式会根据单元格是否包含数字,将每个单元格标记为 Has number 或 Text only。
=IF(REGEXMATCH(A2, "\d"), "Has number", "Text only")转义特殊字符
在正则表达式中,有些字符具有特殊含义:. + * ? ( ) [ ] ^ $ \ 以及其他一些字符。如果您想按字面意义匹配它们,请在前面加上反斜杠。
要检查字面意义上的句点,请写成 \.,而不要只写 .(后者会匹配任意字符)。下面的公式仅当 A2 确实包含句点时才返回 TRUE。
=REGEXMATCH(A2, "\.")快速检查
测试您对 REGEXMATCH 和模式的理解。
回顾:使用模式判断是或否
您已经学会了:在 Google 表格中,REGEXMATCH(text, pattern) 会返回 TRUE 或 FALSE。重点如下:
- 模式描述的是文本的形状,而不仅仅是完全匹配的单词
\d \w \s .是实用的字符快捷写法^和$分别锚定开头和结尾+ * ? {n}控制内容的重复次数- 使用
\.等写法转义特殊字符,以按字面意义匹配它们
接下来,您将从测试模式转向使用 REGEXEXTRACT 提取匹配的文本。
常见问题解答
「使用 REGEXMATCH 测试模式」课时是免费的吗?
是的 — 「使用 REGEXMATCH 测试模式」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「使用 REGEXMATCH 测试模式」这节课中我会学到什么?
检查文本是否匹配某个模式,并返回 TRUE 或 FALSE 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「使用 REGEXMATCH 测试模式」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 REGEXMATCH 测试模式
- 使用 REGEXEXTRACT 提取模式
- 使用 REGEXREPLACE 替换模式
- 拆分并清理杂乱数据