自动识别地址省市区、手机号、姓名,淘宝的地址自动识别

  由于公司软件需求,需要将一段字符串进行解析出省、市、区、街道、详细地址、手机、姓名。类似淘宝的地址自动识别,研究了一个下午加一个上午,换了好多种算法。

  • 手机号
    这个不难,将字符串用特定的符号分割,如:英文逗号、中文逗号、空格
    分割出来的数组进行字数统计,找到11位字符且可以转换为数字的就是手机号,当然不嫌麻烦也可以用正则
  • 姓名
    这个不简单,如果输入的都是正常的姓名那也简单,做一个百家姓的数据表。匹配第一个字,且字数不要超过4个。中国4个字的姓名真的不多。
    但现在地址里写的可能都不会是真实姓名,且超过5个字的昵称,那就麻烦了。
    所以现在用的就是长度对比,数组里长度最长的当作地址来解析,排去手机号,剩下的当作姓名。(暂时没有想到更好的方法)
  • 地址
    真的走了好多弯路
  1. 省市区分割
    这个思路是最早的思路一串字符串用省市区去分割,显然对正规的地址是有效的。但我如果"浙江宁波海曙",这样就找不到了。
    失败!
  2. 模糊查询(统计法)
    既然地址里的省市区都可能不全,那我就用模糊查询,然后查询到的数据存入数组,且做次数统计。
    如地址是:河南郑州100号100幢
    先搜索“河”,如图

    总计1600多条匹配信息,OK!加

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值