使用 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 数据库中的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式在 JS 中验证 url [重复]

正则表达式验证不适用于 Google Chrome Android 应用程序,但适用于 Chrome 浏览器 - PC

使用正则表达式验证 DNS [重复]

JAVA 中的网站/URL 验证正则表达式

匹配 Google 地球 URL 的正则表达式

用于验证大写字母全名的正则表达式(包括 unicode 字符)?