我想从 bigquery 中的表中获取有效的电子邮件地址,规则如下

问题描述 投票:0回答:1

让我们通过例子来考虑2个案例

  1. 如果电子邮件如下所示, [电子邮件受保护] 然后,我希望查询获取此电子邮件 ID,因为正好有 3 个字符,后跟一个点。如果看起来像 [电子邮件受保护],则查询不应选择此记录。

  2. 如果电子邮件 ID 如下所示, [电子邮件受保护] 然后,我希望查询获取电子邮件 ID,因为最后一个点后面紧跟着 3 个字符,其中电子邮件 ID 中有多个点,如果最后一个点之后只有 1 或 2 个字符,则不应选择该记录.

对于第一种情况,我尝试使用以下查询,

选择 regexp_contains (电子邮件, r'[A-Za-z0-9]{3}.')

即使点后只有 2 个字符,也会返回 true。

我尝试了很多方法,但无法弄清楚其中的逻辑。谁能帮忙构建逻辑并解释一下。

email google-bigquery
1个回答
0
投票

您的问题/语言不太容易理解,但看看这是否有帮助:

select email, regexp_contains(email, r'\.[A-Za-z]{3}$') as to_pick_or_not 
from 
(select '[email protected]' as email 
union all 
select '[email protected]' as email 
union all 
select '[email protected]' as email 
)

给出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.