BigQuery中使用REGEX函数提取两指定字符串间的邮箱地址
BigQuery 固定前后缀区间电子邮箱提取方案
实现思路
直接使用BigQuery内置的REGEXP_EXTRACT正则提取函数,通过严格锁定前后固定字符串边界,精准提取目标区间内的邮箱,完全避免文本中其他位置邮箱的干扰,同时支持任意长度的邮箱匹配。
正则匹配逻辑拆解:
- 优先匹配固定前缀
contact at,兼容前缀后存在的任意数量空白字符(空格、制表符等) - 中间捕获组匹配邮箱内容:合规电子邮箱本身不包含空白字符,用
\S+(匹配连续非空白字符)即可覆盖所有长度的合法邮箱 - 捕获组后匹配任意数量空白字符,再接固定后缀
for any,确保不会把后缀前的无关内容纳入提取结果
可直接复用的代码
-- 大小写敏感匹配(严格匹配前后缀的小写形式) SELECT REGEXP_EXTRACT( your_text_column, r'contact at\s+(\S+)\s+for any' ) AS target_email FROM your_table
如果业务文本里前后缀可能存在大小写混合的情况(比如Contact At、FOR ANY),可以给正则增加大小写忽略标记,修改后代码如下:
-- 大小写不敏感匹配 SELECT REGEXP_EXTRACT( your_text_column, r'(?i)contact at\s+(\S+)\s+for any' ) AS target_email FROM your_table
效果验证
用示例测试文本please contact at delivery@good.com for any details执行上述函数,提取结果为:delivery@good.com
内容的提问来源于stack exchange,提问作者Tyson
相关产品推荐
相关产品推荐

