作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的任务是构建一个解析器来解析特定网页,以便我们的员工可以将他们的用户数据批量导入到我们公司的网站中。
我使用了 HtmlAgilityPack 来解析页面,我关联了 table row
和 table data
将被插入我的属性 Map
类。
但是有一个专栏让我很伤心。由于种种原因,Address 列是我的眼中钉。
示例数据:
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; }
但是这些地址并没有提供太多的 anchor :
问题一:如果我锚定 <br>
然后我只是分开线。没有完全分成适当的段。
问题二:单个逗号也有同样的问题。
问题三:如果我锚定到数值,因为 Zip 可能对加拿大无效,并且可能根据街道名称错误分割。
分隔地址项目的最佳方法是什么?使用正则表达式?
最佳答案
解析地址很难;真的很难。没有真正统一的地址格式,尤其是跨国界的地址。您不太可能使用单个 RegEx 执行此操作。
有关一些示例和更深入的解释,请参阅另一篇文章。 How to parse freeform street/postal address out of text, and into components
关于c# - 我怎样才能将地址解析成它的各个组成部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299464/
我是一名优秀的程序员,十分优秀!