-

- 加为好友
- 发送私信
- 在线聊天
-
awash
- 等级:

- 可用分等级:
- 总技术分:
- 总技术分排名:
- 结帖率:
|
| 发表于:2008-08-22 16:30:10 楼主 |
说明: 1。电子邮件保存在ms sql数据库中。 1) 该数据库有三张表,表结构和字段名称完全相同 t_email 保存电子邮件 t_duplicate 保存重复邮件 t_error 保存错误邮件 2) 表结构如下: CREATE TABLE [dbo].[t_email] ( [email] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [company] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [name] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [country] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , [category] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO 3)需要分拣的电子邮件保存在email字段 4)t_email表中的记录有100万条。 2。存储过程的功能要求: 1)如果首尾有空字符,要求清除空字符 例如将 " sea@abc.tv " 处理为 "sea@abc.tv" 2)有大量重复邮件地址。要求将重复的记录复制到t_duplicate表中,并在原t_email表中删除该条记录。 3)邮件域名不一定是.com, .net 之类结尾。域名来自世界各地,例如 ".it", ".ae", ".se"等。 4)如果不是合法的电子邮件,则将该条记录复制到t_error表中,并在原t_email表中删除该记录。 5)合法电子邮件只能有字母或数字开头,可以包含英文的下划线字符,英文的中划线字符,英文句号字符。 合法邮件的样式: XXX@xxx.xxx 例如,以下3个均为合法邮件 john.lee@mn.rr.cn john-lee@test-rr.com john_lee@mn.rr.com.ar 以下这些不是合法邮件 john-lee@test_rr.com (邮件用户名可以有下划线,但域名不能有下划线) -@vega-montage.dk OFIT@ZAHAV.COM.ILI 6)不是每一行都有地址的,有不少记录的email字段是空的( <null>)。则将该条记录复制到t_error表中,并在原t_email表中删除该记录。 7)最后,t_email中剩下的数据,都是清洗过的记录。 3。待清洗的电子邮件存在不少错误,包括: 1)有特殊字符,例如 “/”,分号,中文字符等。 例如:capelec.sarl@wanadoo.fr/GREGORY.CLADERA@CAPELEC.FR 类似的情况还有: a)lhysc@ms34.hinet.net;ysclh@hotmail.com b) narumon.chaim@paka.com <narumon.chaim@paka.com> c) g_naseeb@hotmail.com或 naseeb@emirates.net.ae 等等,不胜枚举。 这些记录,一律复制到t_error表中 2)非法邮件地址,这样的地址,将该条记录复制到t_error表。例如:邮件“OFIT@ZAHAV.CO.ILI” 3)无符号连写 例如: plasticzar@aol.comoralice@advanceplastics.com 这里实际是两个邮件地址,中间有一个 or,这样的地址,将该条记录复制到t_error表。 再例如:unicus@attbi.comORchristienshen@attbi.com 这里也是两个地址,中间也是有一个 “or”。 再例如:mini_94@hotmail.com.fernandojc2@hotmail.com.fernandojc2@bigpond.com 这样的地址,将该条记录复制到t_error表。 4)有可能是完全没有@字符,例如 braunsberger.at,或者 "1234"这样的数字或一些英文字串。这样的记录,将该条记录复制到t_error表 。 以下是一段email范例: capelec.sarl@wanadoo.fr/GREGORY.CLADERA@CAPELEC.FR amen@amenwardy.com amen@amenwardy.com amen@amenwardy.com amrit_quilt_centre@hotmail.com junquett@quadrifoglio.com.br 842234 callas@artshoppe.net hello world flyingsnow368@yahoo.com.cn beechworthwine@yahoo.com mini_94@hotmail.com.fernandojc2@hotmail.com.fernandojc2@bigpond.com clive8116@yahoo.com.vivianbol@hotmail.com info@homenoffice.com.pk;mozzi@cyber.net.pk bilalzady@hotmail.com&waji@netvigator.com jwu@classicpkg.com/jbcindustries@shaw.ca francisco@leadermagazine.com.br,makeasy@imagelink.com.br mina_stl@hotmail.comormina_stl@yahoo.com LPahssen@mn.rr.comorLLPMARK@aol.com carolt@sharich.com, chugani@sharich.com, sunder@sharich.com lhysc@ms34.hinet.net;ysclh@hotmail.com narumon.chaim@paka.com <narumon.chaim@paka.com> g_naseeb@hotmail.com或 naseeb@emirates.net.ae <null> ~~~~~ "michael@dfgifts.com" or "john@dfgifts.com" agroquimlahuerta@prodigy.net.mx @. -.-@amer.fi #AHMED_ENP@YAHOO.COM //Carol.Taylor@Geest.co.uk -@vega-montage.dk 863-3015@HANMAIL.NET 1@profitebor.com amen@amenwardy.com OFIT@ZAHAV.CO.ILI amen@amenwardy.com 清洗结果如下: 1。保留在t_email表中的有 amen@amenwardy.com amrit_quilt_centre@hotmail.com junquett@quadrifoglio.com.br callas@artshoppe.net flyingsnow368@yahoo.com.cn beechworthwine@yahoo.com agroquimlahuerta@prodigy.net.mx 863-3015@HANMAIL.NET 1@profitebor.com 2。保存在t_duplicate表中的有 amen@amenwardy.com amen@amenwardy.com amen@amenwardy.com amen@amenwardy.com (该邮件重复出现5次,故其中4条记录被复制到t_duplicate表中) 3。保存在t_error表中的有 capelec.sarl@wanadoo.fr/GREGORY.CLADERA@CAPELEC.FR 842234 hello world mini_94@hotmail.com.fernandojc2@hotmail.com.fernandojc2@bigpond.com clive8116@yahoo.com.vivianbol@hotmail.com info@homenoffice.com.pk;mozzi@cyber.net.pk bilalzady@hotmail.com&waji@netvigator.com jwu@classicpkg.com/jbcindustries@shaw.ca francisco@leadermagazine.com.br,makeasy@imagelink.com.br mina_stl@hotmail.comormina_stl@yahoo.com LPahssen@mn.rr.comorLLPMARK@aol.com carolt@sharich.com, chugani@sharich.com, sunder@sharich.com lhysc@ms34.hinet.net;ysclh@hotmail.com narumon.chaim@paka.com <narumon.chaim@paka.com> g_naseeb@hotmail.com或 naseeb@emirates.net.ae <null> ~~~~~ "michael@dfgifts.com" or "john@dfgifts.com" @. -.-@amer.fi #AHMED_ENP@YAHOO.COM //Carol.Taylor@Geest.co.uk -@vega-montage.dk OFIT@ZAHAV.CO.ILI |
|
|
|
200
修改
删除
举报
引用
回复
| |