You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中按指定规则筛选有效邮箱地址?

BigQuery提取符合规则的有效邮箱地址解决方案

需求回顾

需要从BigQuery表中筛选出满足以下条件的邮箱:

  • 无论邮箱前缀是否包含多个点,只要最后一个点之后恰好有3个字符的邮箱才保留;
  • 最后一个点后字符数为1或2的邮箱排除。

原查询的问题

你之前使用的REGEXP_CONTAINS(email, r'[A-Za-z0-9]{3}.')存在两个核心问题:

  1. 正则未定位到邮箱末尾,会匹配字符串中任意位置的「3个字母数字+点」组合,完全不关联最后一个点后的字符数;
  2. 点符号未转义,正则中.是匹配任意字符的通配符,而非实际的点。

正确解决方案

核心正则逻辑

使用锚定到字符串末尾的正则,确保最后一个点后恰好是3个字母/数字:

r'\.[a-zA-Z0-9]{3}$'

各部分含义:

  • \.:匹配实际的点符号(转义后不再是通配符);
  • [a-zA-Z0-9]{3}:严格匹配3个字母或数字;
  • $:锚定到字符串末尾,保证这3个字符是邮箱的最后部分。

BigQuery查询语句

将正则应用到查询中,筛选符合条件的邮箱:

SELECT email
FROM `your-project.your-dataset.your-table`
WHERE REGEXP_CONTAINS(email, r'\.[a-zA-Z0-9]{3}$');

测试验证

  • 符合条件的邮箱示例:abc@gmail.com、abc.xyz@gmail.com、user_123@test-domain.org
  • 不符合条件的邮箱示例:abc@gmail.co、test@example.c、admin@site.co.uk

内容的提问来源于stack exchange,提问作者sai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:48:15