【发布时间】:2015-07-24 21:35:48
【问题描述】:
我正在研究一个正则表达式,以按街道号码、街道名称、城市、州和邮政编码解析完整地址。
我想出了一个非常好的正则表达式,它适用于大多数情况,但是,有几种情况它会失败。我需要帮助来改进它。这是我目前拥有的
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
我对解析地址进行了大量研究,我提出的这个解决方案几乎是我找到的最简单的解决方案。只是需要更多的调整。提前致谢。
【问题讨论】:
-
有些人在遇到问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。
-
在欧洲,我们将街道命名为“Britxon 2201”或“1945 胜利 5”(5 是门牌号)。回答你的问题:你没有。
-
由于地址内容和格式的巨大差异,地址不是“常规的”——这是使用正则表达式处理信息的一个不可或缺的因素。本文详述:smartystreets.com/articles/…
标签: android regex street-address