您如何使用Java消毒邮政地址中的街道号码?

时间:2010-09-03 14:19:31

标签: java regex sanitization privacy street-address

为确保数据隐私,我必须在删除街道号码后发布地址列表。

所以,例如:

1600 Amphitheatre Parkway, Mountain View, CA

需要发布为

Amphitheatre Parkway, Mountain View, CA

在Java中执行此操作的最佳方法是什么?这需要正则表达式吗?

4 个答案:

答案 0 :(得分:3)

编辑:怎么样......

addressString.replace("^\\s*[0-9]+\\s+","");

或JavaScript ......

addressString.replace(/^\s*[0-9]+\s+/,'');

我原来的建议是(JavaScript)......

addressString.replace(/^\s*[0-9]+\s*(?=.*$)/,'');

答案 1 :(得分:3)

这是一个技术上难以解决的问题。但我认为这不重要。

您说要从地址中删除街道号码以确保数据隐私。您认为世界如何确保隐私?我的意思是,它可能给居住在拥有几千户住宅的街道上的人提供一点隐私,但在中等街道上,它可以缩小到几百人;在一条小街上可能有一些选择,在一些乡村道路上,它可能会告诉你地址对应的房子。

这不是消毒。

如果您将任何其他数据与该地址相关联,则问题会更加复杂。

答案 2 :(得分:1)

一种可能性是使用通常将解析地址并以XML格式返回的CASS系统。然后,您可以轻松获取街道名称,城市和州,忽略街道号码。

答案 3 :(得分:0)

Natchy,我在一家名为SmartyStreets的地址验证公司工作:解析街道地址是我们的专业领域。我将强化pkananen和Mark所说的内容,这远远超出了正则表达式的能力,无论如何 - 除了数据隐私之外 - 你当前的方法效率低于其他方法。

USPS授权某些地址解析器供应商使用其官方数据并返回经过认证的结果,特别是“CASS认证”。通常CASS与邮件相关联,但很好地延伸到您需要做的事情的领域。有API(用于输入点的东西)和批量服务(如上传列表)将验证并组件化地址。

当地址被分解为组件时,只使用您实际需要的部分非常容易。您还将验证地址是否存在,是否完整,准确,是否符合您的目的。

例如,在LiveAddress' API page(您可以将其用作自己研究的跳板),您可以看到它是如何工作的,从文档中,您可以选择和选择地址的哪些部分我想要展示或存储。 (有趣的是!我们在该页面上的默认样本地址 Google在加利福尼亚州山景城的地址。)

如果您对解析地址有任何疑问,我将很乐意亲自为您提供帮助。