使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址

KIR*_*ATT 5 regex sql google-bigquery

我正在尝试验证我的 google bigquery 表中的电子邮件地址。我正在使用以下查询来执行此操作,但 bigquery 抛出错误。我不确定我的代码有什么问题。我找到了用于验证以下故事的正则表达式:-电子邮件地址中允许使用哪些字符?

select email
FROM my table
WHERE REGEXP_CONTAINS(email, regex)
Run Code Online (Sandbox Code Playgroud)

这里的正则表达式是

Perl 的 RFC2822 正则表达式

Kay*_*son 5

尝试这个查询

SELECT email
FROM table
where email REGEXP '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}'
Run Code Online (Sandbox Code Playgroud)

请注意,最后一部分{2,6}将顶级域名的长度限制为仅 6 个字符,正如 @smoore4 所指出的。

SELECT email
FROM table
where email REGEXP '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}'
Run Code Online (Sandbox Code Playgroud)

这仅要求2顶部域的最小长度。

  • 这在 BigQuery 中仍然有效吗?这适用于 BigQuery `REGEXP_CONTAINS(email, r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{ 2,6}$')`。 (2认同)