让我们通过例子来考虑2个案例
如果电子邮件如下所示, [电子邮件受保护] 然后,我希望查询获取此电子邮件 ID,因为正好有 3 个字符,后跟一个点。如果看起来像 [电子邮件受保护],则查询不应选择此记录。
如果电子邮件 ID 如下所示, [电子邮件受保护] 然后,我希望查询获取电子邮件 ID,因为最后一个点后面紧跟着 3 个字符,其中电子邮件 ID 中有多个点,如果最后一个点之后只有 1 或 2 个字符,则不应选择该记录.
对于第一种情况,我尝试使用以下查询,
选择 regexp_contains (电子邮件, r'[A-Za-z0-9]{3}.')
即使点后只有 2 个字符,也会返回 true。
我尝试了很多方法,但无法弄清楚其中的逻辑。谁能帮忙构建逻辑并解释一下。
您的问题/语言不太容易理解,但看看这是否有帮助:
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
)