以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]能不能从地址里面解析出省、市、区、详细地址 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147018) |
-- 作者:zto001 -- 发布时间:2020/3/7 20:01:00 -- [求助]能不能从地址里面解析出省、市、区、详细地址 [求助]能不能从地址里面解析出省、市、区、详细地址 正则表达式行吗?还是其他方法?
[此贴子已经被作者于2020/3/7 20:54:15编辑过]
|
-- 作者:zto001 -- 发布时间:2020/3/7 20:15:00 -- https://github.com/pupuk/address-smart-parse 类似于这样
|
-- 作者:zto001 -- 发布时间:2020/3/7 20:47:00 -- Dim str As String = "北京市北京市通州区北苑街道日光清城1号楼3单元203(000000)" Dim ary() As String = {"^", "(省|自治区)", "(市|盟)", "(县|区|旗)", "(镇|街)", "(村|会)", "$"} For i As Integer = 0 To 5 For j As Integer = i To 0 Step -1 Dim mc = System.Text.RegularExpressions.Regex.Match(str, "(?<=" & ary(j) & ").+" & ary(i+1)) If mc.success Then Output.Show(ary(i+1) & ":" & mc.value) Exit For End If Next Next 需要得到的结果是: 省份:北京 城市:北京市 区县:通州区 详址:北苑街道日光清城1号楼3单元203(000000) 这种勉强可以,但如果是直辖市或者没有规范填写省市区的,就解析不出来。 如何做到解析直辖市 还有如何解析不规范的省市区。比如就写个北京通州区某某某 或者通州区某某某 或者北京通州某某某?
|
-- 作者:zto001 -- 发布时间:2020/3/7 22:52:00 -- 还有存在两个市也分不出来 浙江省温州市瑞安市塘下镇塘西金河大厦大自然
[此贴子已经被作者于2020/3/7 22:52:10编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/3/8 20:52:00 -- 没有办法,只能做到这样。程序毕竟不是人脑 |