如何用Regex解析街道地址?

时间:2015-07-24 21:35:49

标签: android regex street-address

我正在使用正则表达式来解析街道号码,街道名称,城市,州和邮政编码的完整地址。

我提出了一个非常好的正则表达式,适用于大多数情况,但是,有几种情况它失败了。我需要帮助改进它。这是我目前的

Pattern pattern = Pattern.compile("^([\\d-]{0,}[\\s-]{0,}[\\d/]+)[\\s]{0,}");

如果街道地址很好地形成,地址以没有附加字母的街道号码开头,这样就可以正常工作。例如:

  • 123 Street Address, CA, 55555 正常运行
  • 123 4th Street Address, CA, 55555会导致:

      1234 => street number
      th Street => street name
    

我已经对解析地址做了大量研究,我提出的这个解决方案就是我发现的最简单的解决方案。只需要多一点调整。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您不应将所有街道地址分解为一个正则表达式。你最好处理具有多个正则表达式的街道地址,以涵盖各种各样的场景,例如。

  • 123 Stackoverflow Way
  • 5000 5th Avenue
  • 1 Hacker Way Building 5