如何在BigQuery中用Regex匹配全名+6位数字+Gmail的客户邮箱?
在BigQuery中匹配指定格式Gmail邮箱的正则实现
核心思路
你需要匹配的邮箱结构为:去除空格并小写的客户全名 + 6位随机数字 + @gmail.com域名。最准确的方式是结合客户姓名字段动态构造正则,确保邮箱前缀与对应姓名严格匹配。
具体查询语句
SELECT name, email FROM `你的项目ID.你的数据集ID.Customers` WHERE REGEXP_MATCH( email, CONCAT('^', LOWER(REPLACE(name, ' ', '')), '[0-9]{6}@gmail\\.com$') )
代码说明
LOWER(REPLACE(name, ' ', '')):将客户姓名去除空格并转为小写,得到与邮箱前缀前半段一致的字符串CONCAT(...):拼接生成完整正则模式:^:匹配邮箱开头[0-9]{6}:匹配连续6位数字@gmail\.com$:匹配固定域名,且$确保邮箱结尾无多余字符
REGEXP_MATCH:验证邮箱是否完全符合构造的正则模式
补充:单纯匹配格式(不关联姓名)
如果不需要关联姓名,仅匹配「小写字母串+6位数字+Gmail域名」的邮箱,可使用以下正则:
SELECT name, email FROM `你的项目ID.你的数据集ID.Customers` WHERE REGEXP_MATCH(email, '^[a-z]+[0-9]{6}@gmail\\.com$')
注意:这种方式可能会匹配到与姓名无关的邮箱,仅建议在无需关联姓名场景使用。
内容的提问来源于stack exchange,提问作者Jeremy C
相关产品推荐
相关产品推荐

