在分段中使用正则表达式匹配

预计阅读 3 分钟 | 更新于 2026年5月11日 9:41 AM EST

什么是正则表达式匹配?

正则表达式匹配允许您根据文本模式而不是精确值来过滤配置文件。这对于查找遵循特定格式的配置文件非常有用,例如来自某些域的电子邮件地址或特定格式的电话号码。 ⚠️ 重要提示: 正则表达式始终匹配从头到尾的完整值。

如何使用正则表达式

构建段时,可以使用两个正则表达式运算符:

  • 匹配正则表达式 – 包括值与您的正则表达式匹配的配置文件
  • 与正则表达式不匹配 – 包括值与正则表达式不匹配的配置文件

它可以在以下段条件下使用:

  1. 某人的属性(包括自定义对象)
Klaviyo help center screenshot
Klaviyo help center screenshot
Klaviyo help center screenshot
Klaviyo help center screenshot
  1. 过滤“某人已完成或未完成的操作”和“某人按特定顺序执行的步骤”
Klaviyo help center screenshot
Klaviyo help center screenshot

###

正则表达式基础

匹配字符

  • 字母和数字 – 正常输入:hello 匹配“hello”
  • 任何数字 – 使用 \d 匹配 0-9 的任何数字
  • 任何字母 – 使用 [a-z] 表示小写字母,使用 [A-Z] 表示大写字母,或使用 [a-zA-Z] 表示两者
  • 要么/或 – 使用 |匹配选项:gmail|yahoo 匹配“gmail”或“yahoo”
  • 任何内容 – 使用 .\* 匹配任何字符

特殊字符

在这些之前添加反斜杠 \ 以字面匹配它们:

  • 句点:\。匹配一个句点
  • 加号:\+ 匹配加号
  • 括号:\( 和 \) 匹配括号

重复模式

  • {5} – 正好 5 次(例如,\d{5} 匹配 5 个数字)
  • {2,4} – 2 到 4 次
  • ? – 可选(0或1次)

注意:我们将重复模式限制为最多 1,000 次重复

###

常见示例

电子邮件地址

  • 特定域:
  • .\*@example\.com
  • 匹配:john@example.com、support@example.com
  • 多个域:
  • .\*@(gmail|yahoo|hotmail)\.com
  • 匹配:user@gmail.com、user@yahoo.com、user@hotmail.com
  • 任何 .com 电子邮件:
  • .\@.\\.com

电话号码

  • 10 位美国号码
  • \d{10}
  • 比赛号码:5551234567
  • 带括号的格式:
  • \(\d{3}\) \d{3}-\d{4}
  • 比赛:(555) 123-4567

邮政编码

  • 5 位邮政编码:
  • \d{5}
  • 比赛:12345
  • 邮政编码+4:
  • \d{5}-\d{4}
  • 比赛:12345-6789

对于高级参考:我们的实现使用 Google RE2 作为我们的标准。 在此处了解更多信息.

###

正则表达式限制

限制价值示例
正则表达式长度最多 1,000 个字符
正则表达式行最多 100 行
重复最多重复 1,000 次\d{1000} 允许 \d{1001} 不允许
选项 ()主层最多 5 个abcdef 超出限制(6 个选项)
嵌套深度最多 5 级((((a)))) 为 4 级,允许

此外,目前不支持以下功能。

功能示例
前瞻/后瞻(?=…), (?!…), (?<=…), (?<!…)
反向引用\1, \2, (\w+)\s+\1
Unicode 转义\uXXXX,\u00A0
嵌套量词(a+)+, (x\)\, (a{2,5})+

###

成功秘诀

1.正则表达式匹配完整值

您的正则表达式必须描述整个值,而不仅仅是其中的一部分。错误:gmail\.com(仅匹配文本“gmail.com”)

右:.\*@gmail\.com(匹配完整的电子邮件,如 john@gmail.com)

2.总是逃避经期

匹配.com、.net等时,写成\.com,并加反斜杠。错误:@gmail.com(句点匹配任何字符)

右:@gmail\.com(与文字句点匹配)

***3.使用 .\ 表示“任何内容”****

匹配任何带有 .\* 的字符

  • .\*@company\.com – company.com 上的任何电子邮件
  • \+.\* – 以 + 开头的任何内容
  • .\紧急。\ – 包含“紧急”的文本

4.从简单开始,然后完善

从基本的正则表达式开始,逐渐添加细节。 – 示例:.\*@gmail\.com → [a-z]+\.[a-z]+@gmail\.com

尽可能将复杂的逻辑拆分为多个简单的过滤器。 – “来自加利福尼亚州的 Gmail 或 Yahoo 电子邮件”示例:

  • 过滤器 1:电子邮件与正则表达式匹配 .\*@(gmail|yahoo)\.com
  • 过滤器 2:State 等于 California

5. 正则表达式默认区分大小写

如果您想让语句不区分大小写,可以添加“(?i)”作为前缀。 – 产品匹配 (?i)^iphone$

何时使用正则表达式与标准运算符

当您需要匹配特定格式或模式时,请使用正则表达式。对于更简单的需求,我们强烈建议使用标准运算符:

  • 包含 – 文本出现在任何地方
  • 开头为 – 匹配开头
  • 结尾为 – 匹配结尾
  • 等于 – 完全匹配