使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址
Posted
技术标签:
【中文标题】使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址【英文标题】:Validating Email addresses in my google bigquery database by using mysql regular expression 【发布时间】:2019-01-25 10:46:17 【问题描述】:我正在尝试在我的 google bigquery 表中验证 电子邮件地址。 我正在使用以下查询来执行此操作,但 bigquery 会引发错误。 我不确定我的代码有什么问题。我在下面的故事中找到了用于验证的正则表达式:- What characters are allowed in an email address?
select email
FROM my table
WHERE REGEXP_CONTAINS(email, regex)
这里的正则表达式是
Perl's RFC2822 regex
【问题讨论】:
可以添加错误信息吗?这可能是由于 REGEXP 表达式或您指定它的方式。注意regex
应该被引用并且在引号前加上一个字符(r
)。检查this example 关于标准 SQL 中的 REGEXP
【参考方案1】:
试试这个查询
SELECT email
FROM table
where email REGEXP '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]2,6'
【讨论】:
`` 是 TLD 的缩写,请参阅 TLD 列表:iana.org/domains/root/db;有效/无效地址:en.wikipedia.org/wiki/Email_address#Examples; RFC822 电子邮件地址的正则表达式:ex-parrot.com/~pdw/Mail-RFC822-Address.html【参考方案2】:我觉得这样更干净...
SELECT email
FROM table
where REGEXP_CONTAINS(email, r"@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+")
【讨论】:
以上是关于使用 mysql 正则表达式验证我的 google bigquery 数据库中的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章