相关疑难解决方法(0)

如何从文本和组件中解析自由形式的街道/邮政地址

我们主要在美国开展业务,并试图通过将所有地址字段组合到单个文本区域来改善用户体验.但是有一些问题:

  • 用户键入的地址可能不正确或采用标准格式
  • 地址必须分为部分(街道,城市,州等)来处理信用卡付款
  • 用户可以输入的不仅仅是他们的地址(比如他们的名字或公司)
  • 谷歌可以做到这一点,但服务条款和查询限制是禁止的,特别是在预算紧张的情况下

显然,这是一个常见的问题:

有没有办法将地址与周围的文本隔离并将其分解成碎片?是否有正则表达式来解析地址?

api parsing street-address

122
推荐指数
5
解决办法
9万
查看次数

正则表达式提取美国邮政编码但不提取伪代码

使用 XML 包和 XPath 从网站抓取地址,有时我只能得到一个字符串,其中嵌入了我想要的邮政编码。提取邮政编码很简单,但有时会显示其他五位数的字符串。

以下是 df 中问题的一些变体。

zips <- data.frame(id = seq(1, 5), address = c("Company, 18540 Main Ave., City, ST 12345", "Company 18540 Main Ave. City ST 12345-0000", "Company 18540 Main Ave. City State 12345", "Company, 18540 Main Ave., City, ST 12345 USA", "Company, One Main Ave Suite 18540, City, ST 12345")) 
Run Code Online (Sandbox Code Playgroud)

下面是提取邮政编码(5 位和 4 位数字)的 R 语句,但它被街道号码和套房号的虚假邮政编码所欺骗(其他地址字符串中可能还有其他可能性)。

regmatches(zips$address, gregexpr("\\d{5}([-]?\\d{4})?", zips$address, perl = TRUE))
Run Code Online (Sandbox Code Playgroud)

对上一个 SO 问题的回答表明“正则表达式将返回最后一个连续的五位数字字符串。它使用负前瞻来确保在返回后没有 5 位数字字符串。”
从地址字符串中提取邮政编码

\b\d{5}\b(?!.*\b\d{5}\b)
Run Code Online (Sandbox Code Playgroud)

但是这个问题和答案涉及 PHP,并提供了一个带有 preg_matches()` 的 if 循环我不熟悉这些语言和工具,但这个想法可能是正确的。

我的问题:什么 …

regex string r

5
推荐指数
1
解决办法
2266
查看次数

标签 统计

api ×1

parsing ×1

r ×1

regex ×1

street-address ×1

string ×1