【发布时间】:2021-04-07 03:27:19
【问题描述】:
场景
在其大部分历史中,我的公司在电子邮件地址中使用子域,主要是按州划分,但其他公司有部门子域。我们所拥有的一些示例包括:
mo.widgits.com
sd.widgits.com
va.widgits.com
nhq.widgits.com
gis.widgits.com
tech.widgits.com
...等等。
新范式
几年前,高层管理人员决定希望我们所有人成为一个幸福的家庭;作为这种文化调整的一部分,他们将每个人的电子邮件地址更改为单一域,格式为firstname.lastname@widgits.com。
目前的挑战
在我们的许多公司数据库中,我们发现使用旧格式和新格式的混合记录。例如,同一个人可能在员工系统中有porky.pig@widgits.com,在培训系统中有porky.pig@in.widgits.com。我需要在各种系统中匹配个人,无论该系统中使用哪种格式的电子邮件。
所需的匹配项
porky.pig@in.widgits.com = porky.pig@widgits.com -> true
mary.poppins@widgits.com = mary.poppins@nhq.widgits.com -> true
bob.baker@widgits.com = bob.barker@gis.widgits.com -> false
如何实现?
是否有一个正则表达式模式可用于匹配电子邮件地址,无论它们是哪种格式?或者我是否需要在尝试匹配之前手动提取子域?
【问题讨论】:
-
你在哪里匹配这些?使用原始查询?网络服务器后端?
-
我将数据集导入笔记本电脑上的 PostgreSQL 数据库,并针对它们运行一堆 SQL 以进行深入分析和报告。
标签: postgresql pattern-matching email-address