Foxtable(狐表)用户栏目专家坐堂 → 【已解决】[求助]收货地址解析这个可以用在狐表上吗?


  共有3212人关注过本帖树形打印复制链接

主题:【已解决】[求助]收货地址解析这个可以用在狐表上吗?

帅哥哟,离线,有人找我吗?
zto001
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2020/9/15 8:07:00 [只看该作者]

https://www.cnblogs.com/syp172654682/p/9252951.html

这个能用正则匹配特殊地方,改成狐表代码要怎么改?


    public static List<Map<String,String>> addressResolution(String address){
        String regex="((?<province>[^省]+省|.+自治区)|上海|北京|天津|重庆)(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.+区|.+镇|.+局)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
        Matcher m=Pattern.compile(regex).matcher(address);
        String province=null,city=null,county=null,town=null,village=null;
        List<Map<String,String>> table=new ArrayList<Map<String,String>>();
        Map<String,String> row=null;
        while(m.find()){
            row=new LinkedHashMap<String,String>();
            province=m.group("province");
            row.put("province", province==null?"":province.trim());
            city=m.group("city");
            row.put("city", city==null?"":city.trim());
            county=m.group("county");
            row.put("county", county==null?"":county.trim());
            town=m.group("town");
            row.put("town", town==null?"":town.trim());
            village=m.group("village");
            row.put("village", village==null?"":village.trim());
            table.add(row);
        }
        return table;
    }

}

 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107478 积分:546669 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/15 8:46:00 [只看该作者]

如果是C#,自行转换为vbnet代码:https://converter.telerik.com/

如果是java我也不懂

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2020/11/22 22:54:00 [只看该作者]

最新剥离寄件人信息代码
'''
Dim 省,市,区,地址,电话,姓名,解析后 As String
Dim 解析后= "收件地址是湖南省长沙市浏阳市浏阳15616161615大道阿斯事部 15616161616 周某某"
解析后=解析后.Replace("地址","").Replace("收货人","").Replace("收货","").Replace("电话","").Replace("姓名","").Replace("收件人","").Replace("手机号" ,"").Replace("手机","").Replace("号码","").Replace("名字","").Replace("收件","")
'【解析剥离电话号码】
Dim pattern As String = "[1][358][0-9]{9}|[0][0-9]{2,3}-[0-9]{7,8}"
Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(解析后)
    If 电话="" Then
        电话=match.Value
        解析后=解析后.Replace(match.Value ,"")
    End If
Next

'剥离姓名
Dim s As String =解析后 ' "李如,柳址 诸葛长沙;市浏阳市/浏阳大道阿 斯事部斯事部 斯事部斯事部是 斯事部斯事部是的 斯事部斯事部是试试 15616161616 某某 李佳琪"
Dim arr() As String = s.split(new Char(){",",";","/"," ","0","1","2","3","4","5","6","7","8","9","|",",",".",";",":"})
For Each ar As String In arr
    Dim s0 As String = ar
    Dim p As String = "^[赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄麴家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘景詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阴欎胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍舄璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查後荆红游竺权逯盖益桓公上欧赫皇尉澹淳太轩令宇长鲜闾亓仉督子颛端漆壤拓夹晋楚闫法汝鄢涂钦百南呼归海微岳帅缑亢况后有琴西商牟佘佴伯赏墨哈谯笪年爱阳佟第言福姓]+\w*[\u4e00-\u9fa5]{1,4}\w*"
    Dim rgx地址 = new System.Text.RegularExpressions.Regex(p, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    If rgx地址.isMatch(s0) Then
        If 姓名="" Then
            姓名=ar
            'Output.Show("匹配;姓名"&ar)
            解析后=解析后.Replace(ar,"")
        End If
    End If
Next

'【解析剥离省市区地址】
地址 =""
Dim 行政区 As String=""
Dim p1 As String = "([省市区县乡镇])"
Dim p2 As String = "([省市区县乡镇])"
Dim r0 As New System.Text.RegularExpressions.Regex(p1)
Dim str = r0.Split(解析后)
Dim Int As Integer

For Index As Integer = 0 To str .Length - 1
    'Output.Show(str (Index))
    If Index<4 And Index<str .Length - 1 Then
        行政区=行政区 & str (Index)
    Else
        地址=地址 & str (Index)
    End If
Next
Dim hc As New HttpClient("http://api.map.baidu.com/place/v2/search?query=" & 地址 & "&tag=门址&region=" & 行政区 & "&output=json&ak=imi****BiOQ")
Dim ret As String = hc.GetData()
Dim json As String =ret '
Dim jo As JObject = JObject.Parse(json)
If jo("status").ToString=0 Then
    省= jo("results")(0)("province").ToString
    市=jo("results")(0)("city").ToString
    区=jo("results")(0)("area").ToString
End If
Output.Show("姓名:" &姓名)
Output.Show("电话:" &电话)
Output.Show("省:" &省)
Output.Show("市:" &市)
Output.Show("区:" &区)
Output.Show( "地址:" & 解析后.Replace(省,"").Replace(市,"").Replace(区,""))


 回到顶部
总数 13 上一页 1 2