remplacement d'expression régulière python
淡淡烟草味
淡淡烟草味 2017-05-18 10:58:52
0
2
579

J'ai récemment rencontré un problème avec le remplacement d'expressions régulières

Chaque donnée dans les données temporelles est précédée de [0]= [1]= [2]= [3]= cet index :

["time"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},[1]={["status"]=true,["ac"]=1,["bg"]=2},[2]={["status"]=true,["ac"]=1,["bg"]=2},}

Pour certaines raisons, l'index précédent a disparu et ne peut être ajouté qu'à l'aide d'expressions régulières. Le problème est que la quantité de données dans le temps est différente

.
["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},}

Existe-t-il un moyen d'ajouter automatiquement le séquentiel [0]= [1]= [2]= [3]=

Ajouté :

Les mauvaises données sont regroupées et l'ordre des données dans le temps n'est pas le même, comme suit :

["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},}

Vous souhaitez le changer en :

["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},}
淡淡烟草味
淡淡烟草味

répondre à tous(2)
黄舟
>>> 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},}'
曾经蜡笔没有小新
i = 0
def func(x):
    global i
    s = '[%d]=%s' % (i,x)
    i += 1
    return s 
import re
a = '["time"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}'
print re.sub('\{\["status"',lambda m:func(m.group(0)),a)

C'est pas bien écrit, c'est drôle

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal