加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何将地址解析为其各个组件?

发布时间:2020-12-16 02:01:21 所属栏目:百科 来源:网络整理
导读:我的任务是构建一个解析特定网页的解析器,以便我们的员工可以将他们的用户数据批量导入我们公司的网站. 我已经利用HtmlAgilityPack来解析页面,我已将表行和表数据相关联,以便将其推送到Map类中的属性中. 然而,一栏让我感到很悲伤.由于各种各样的原因,地址栏
我的任务是构建一个解析特定网页的解析器,以便我们的员工可以将他们的用户数据批量导入我们公司的网站.

我已经利用HtmlAgilityPack来解析页面,我已将表行和表数据相关联,以便将其推送到Map类中的属性中.

然而,一栏让我感到很悲伤.由于各种各样的原因,地址栏是我身边的荆棘.

样本数据:

6313 SW 203rd Ave <br> Portland,OR 97224
16600 Lomita Way <br> El Dorado Hills,CA 95762
PO Box #42 <br> Hampton Bays,NY 11946

这些地址中的每一个都是这样包装的(显然地址可能因我们导入用户的客户而异):

<tr>
     <td> 6313 SW 203rd Ave <br> Portland,OR 97224 </td>
</tr>

我正在尝试实现一个正则表达式将其拆分到适当的区域,因此可以将其分配给相关属性:

public string Unit { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }

但是地址不能提供很多锚定:

问题一:
如果我锚定< br>那我只是把线分开了.没有完全分裂成适当的部分.

问题二:
与单个逗号相同的问题.

问题三:
如果我锚定到数值,因为Zip可能对加拿大无效,并且可能根据街道名称错误地拆分.

分隔地址项目的最佳方法是什么?用正则表达式?

解决方法

解析地址很难;真的很难.
地址没有真正统一的格式,特别是跨国界.
您使用单一RegEx进行此操作的可能性极低.

有关一些示例和更深入的解释,请参阅此其他帖子.
How to parse freeform street/postal address out of text,and into components

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读