加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用正则表达式处理一个复杂字符串(类似json格式)

发布时间:2020-12-14 06:10:05 所属栏目:百科 来源:网络整理
导读:#利用正则输出{}中的内容 str1="""var local=[{provinceCode:‘310000‘, ?? cityCode:‘310100‘, ?? text:‘上海‘, ?? dpt:‘20222003‘, ?? carNo:‘沪A‘, ?? pName:‘上海市‘, ?? cName:‘上海市‘}, ? {provinceCode:‘322222‘, ?? text:‘北京‘,

#利用正则输出{}中的内容

str1="""var local=[{provinceCode:‘310000‘,
??        cityCode:‘310100‘,
??        text:‘上海‘,
??        dpt:‘20222003‘,
??        carNo:‘沪A‘,
??        pName:‘上海市‘,
??        cName:‘上海市‘},
?        {provinceCode:‘322222‘,
??        text:‘北京‘,
??        carNo:‘京A‘,
??        pName:‘北京市‘,
??        cName:‘北京市‘}]"""
#方法1
?
import re
print
(re.findall(r{?w+:‘w*‘,?}?,str1,re.I|re.M)) res=re.sub(rs+,‘‘,re.I|re.M) print(res:,res) result=re.findall(r{?w+:‘w+‘,res,re.I|re.M) print(result:,result) rr=‘‘ import string s=string.punctuation d={} for i in result: if i[0]=={: #处理 第一行包含{开头的 out_key=i.split(:)[1].strip(s) d[out_key]={} inner_key=i.split(:)[0][1:] value=i.split(:)[1].strip(s) d[out_key][inner_key]=value elif i[-1]==}: #处理最后一行包含}结尾的 inner_key=i.split(:)[0] value=i.split(:)[1][:-1].strip(s) d[out_key][inner_key]=value else: #处理中间普通行 inner_key=i.split(:)[0] value=i.split(:)[1].strip(s) d[out_key][inner_key]=value print(处理结果:,d) for i in result: print(分组打印:,i)
#方法2
#直接取到了大括号内的内容的匹配方式:
print(re.findall(r{.*?},re.M|re.DOTALL))

#然后把结果处理成一个字典:
result=re.findall(r{.*?},re.M|re.DOTALL)

print(吴老师的reuslt:,result)

def func(s):
    s="+str(s.group(1))+"  #正常不需要 返回:但是处理京A的A特殊处理一下
    return s
d={}
for i in result:
    outkey=re.search(rprovincew+:(‘w+‘),i).group(1)  #以province的编号作为外层key
    
    d[outkey]={}                    #定义内层字典,存储明细
    temp=re.sub(r"[{}s]+","",i)            #替换掉字符串的{}及空白
        
    temp=re.sub(r([a-zA-Z]+)(?=:),func,temp)  #正常不加:,但是会导致京A的A被加"",所以使用后置肯定(?=:),表示有:的才会匹配

print(temp) s=dd=+{+temp+} #用exec处理内层字符串为字典 exec(s) d[outkey]=dd print(最终处理结果:,d)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读