python 正则表达式替换
问题描述
最近遇到一个正则表达式替换的问题
time数据里面的每条数据前面都有[0]= [1]= [2]= [3]=这个索引:
['time']={[0]={['status']=true,['ac']=1,['bg']=2},[1]={['status']=true,['ac']=1,['bg']=2},[2]={['status']=true,['ac']=1,['bg']=2},}
因为一些原因前面的索引没了,只能用正则来加上,问题是time里面的数据数量是不一样的
['time']={{['status']=true,['ac']=1,['bg']=2},}['time']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},}['time']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},}
有没有方法自动在前面加顺序的[0]= [1]= [2]= [3]=
补充:
错误的数据是在一起的,而且time里面的数据顺序不相同,如下:
['time1']={{['status']=true,['ac']=1,['bg']=2},},['time2']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},},['time3']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},}
想改成:
['time1']={[0]={['status']=true,['ac']=1,['bg']=2},},['time2']={[0]={['status']=true,['ac']=1,['bg']=2},[1]={['status']=true,['ac']=1,['bg']=2},},['time3']={[0]={['status']=true,['ac']=1,['bg']=2},[1]={['status']=true,['ac']=1,['bg']=2},[2]={['status']=true,['ac']=1,['bg']=2},}
问题解答
回答1:>>> import re>>> s=’['time']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},}’>>> n=0>>> def repl(m): global n rslt=’[%d]=%s’%(n,m.group(0)) n+=1 return rslt>>> p=re.compile(r’{[^{}]+},’)>>> p.sub(repl,s)’['time']={[0]={['status']=true,['ac']=1,['bg']=2},[1]={['status']=true,['ac']=1,['bg']=2},[2]={['status']=true,['ac']=1,['bg']=2},}’回答2:
i = 0def func(x): global i s = ’[%d]=%s’ % (i,x) i += 1 return s import rea = ’['time']={{['status']=true,['ac']=1,['bg']=2},{['status']=true,['ac']=1,['bg']=2},}’print re.sub(’{['status'’,lambda m:func(m.group(0)),a)
写的不好,见笑了
相关文章:
1. python 中文乱码问题2. linux - 【已解决】fabric部署的Python项目Apache启动之后提示403Forbidden该如何解决?3. 上传多图时,最后一张图为缩略图,想设置第一张图为缩略图怎么解决?4. python - 如何获取rabbitmq连接的celery的个数5. 怎样用python给mp3添加封面?6. js怎样实现在类似qq的联系人分组中进行搜索后,又可恢复原分组的界面?7. 数据库 - Mysql的存储过程真的是个坑!求助下面的存储过程哪里错啦,实在是找不到哪里的问题了。8. javascript - 百度地图一开始设置了中心点,怎么通过按钮在调转到对应的中心点????9. mysql优化 - mysql 一张表如果不能确保字段列长度一致,是不是就不需要用到char。10. python - 如何将文本文件的CR换行符换成LF换行符?