2010-07-13 92 views
3

我有一块文字,包括名称,可能是公司名称和地址,也可能是电子邮件地址。我想从中提取街道地址,最好是名称和地址。从名称和地址的文本块中提取地址/联系人详细信息?

这个数据是从多个来源中抽取的,所以我不知道实际的格式。这可能是这样的

Company name, [email protected] 
ATTN John Doe 
care of Company Name 
123 Street St 
New York, NY 12345 
US 
123-456-7890 

这些行,但任何可以重新排列或缺失(电话号码可能是第一位的,没有ATTN或C/O等)。此外,这可能来自任何国家。

目标是a)将地址插入Google Maps API,b)尽可能多地创建联系人信息。

这是一个随机的想法,我有:

  1. 以一个电子邮件地址的任何行(可以轻松地将正则表达式中找到),存储的电子邮件地址并从进一步考虑的行。
  2. 取任意一个电话号码(仅限数字,[ - +()]),存储该号码,然后从进一步考虑中删除该行。
  3. 拿最后三行,并考虑那些街道地址 - 将它们插入Google地图,并希望获得最佳效果。

显然,这是很多juju魔术。有更聪明的方法吗?是否有任何图书馆具有良好的正则表达式来寻找不同国家的街道地址?

+0

您是否找到任何解决方案? – Nemi 2012-03-15 16:57:09

+0

@Nemi:不,尽管我需要它的应用程序是在加力燃烧器上。仍然是一个有趣的问题,很高兴为它找到解决方案。 – EboMike 2012-03-15 17:45:34

回答

0

取决于您的来源。如果你能控制它从源头到达的方式,那么你可以做一些格式化。

+0

这就是问题 - 我不知道。这是从我无法控制的多个来源获得的。 – EboMike 2012-02-08 18:07:16

+0

哪些来源?可能有配置选项 – 2012-02-09 04:49:38

+0

在这种特定情况下,数据来自WHOIS信息。显然,我无法控制源,你会得到大量的数据,就是这样。 – EboMike 2012-03-15 17:46:15

相关问题