如何使用正则表达式解析街道地址?

How to parse street address with Regex?

我正在研究一个正则表达式,以按街道号码、街道名称、城市、州和邮政编码解析完整地址。

我想出了一个适用于大多数情况的非常好的正则表达式,但是,在某些情况下它会失败。我需要帮助改进它。这是我目前拥有的

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

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

我对解析地址做了很多研究,我想出的这个解决方案几乎是我找到的最简单的解决方案。只需要多做一些调整。提前致谢。

您不应将所有街道地址分解为一个正则表达式。您最好使用多个正则表达式来处理街道地址,以涵盖广泛的场景,例如

  • 123 Whosebug 方式
  • 第五大道 5000 号
  • 1 黑客之路 5 号楼