【Python】用正则提取供地数据信息

import re

# 待匹配信息
# xxxx有限公司\P54862.3平方米\P工业用地\P2035金准0033号
# xxxx经济合作社\P12001.2平方米\P工业\P2005-005\P
# xxxx设备有限公司\P1045平方米\P工业\P2003-052\P

# 用地单位
# 直接分割字符串返回第一项
def search(s, i):
    attrs = s.split("\\P")
    l = len(attrs)
    if i>l-1:
        return
    return attrs[i]
    
# 用地面积
# 匹配“整数加平方米”或者“浮点数加平方米”
# 如1045平方米、12001.2平方米
def search(s):
    pattern = unicode('\d+\.?\d+平方米', "utf-8")
    match = re.findall(pattern, s)
    if len(match)==1:
        return float(match[0][0:-3])
    else:
        return

# 批文号
# 匹配以“\p”开头,“号”,“整数-整数”或者“非号非\P”的任意个字符
# 如2005-005、2035金准0033号
def search(s):
    pattern = unicode('(?<=\\\\P)\d+-\d+|[^号\\\\P]+号', "utf-8")
    match = re.findall(pattern, s)
    if len(match)==1:
        return match[0]
    else:
        return

# 土地用途
# 匹配以“\P”开头,“\P”结尾,包含特定关键词
# 如工业用地、工业
# 这个还需要改进
def search(s, a):
    if a is not None:
        return a
    words = ["性质","住宅","居住","工业","用地","展览","商住","集资楼","设施","商业楼","别墅","园地"]
    for word in words:
        ss = '(?<=\\\\P)[^(\\\\P)]*'+word+'[^(\\\\P)]*(?=\\\\P)'
        pattern = unicode(ss, "utf-8")
        match = re.findall(pattern, s)
        if len(match)==1:
            return match[0]
    return

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值