为确保数据隐私,我必须在删除街道号码后发布地址列表。
所以,例如:
1600 Amphitheatre Parkway, Mountain View, CA
需要发布为
Amphitheatre Parkway, Mountain View, CA
在Java中执行此操作的最佳方法是什么?这需要正则表达式吗?
答案 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在加利福尼亚州山景城的地址。)
如果您对解析地址有任何疑问,我将很乐意亲自为您提供帮助。