从名称和地址的文本块中提取地址/联系人详细信息?

时间:2010-07-13 07:02:40

标签: java android street-address

我有一个文本块,其中包括姓名,公司名称和地址,也许还有电子邮件地址。我想从中提取街道地址,最好是姓名和地址。

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

Company name, owner@domain.com
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. 取最后三行并考虑街道地址 - 将它们插入谷歌地图并希望最好。
  4. 显然,这是很多juju魔术。有更聪明的方法吗?是否有任何图书馆有良好的正则表达式来寻找不同国家的街道地址?

1 个答案:

答案 0 :(得分:0)

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