我的文件格式为:
name : base : add : data1 : data2 : {desc}
name : base : add : data1 : data2 : {desc}
name : base : add : data1: data2 : {desc
desc-continue}
name : base : add : data1: data2 : {desc
desc-contiue
desc-continue}
...
name : base : add : data1 : data2 : {desc}
您可以看到desc以{}开头和结尾,但可以跨越多行。
这样,我不能使用reg = Register._match(line.split(r /:/)
有关如何在python中有效解析此文件的任何帮助。
答案 0 :(得分:0)
由}
分割,然后稍后追加。
a = """name : base : add : data1 : data2 : {desc}
name : base : add : data1 : data2 : {desc}
name : base : add : data1: data2 : {desc
desc-continue}
name : base : add : data1: data2 : {desc
desc-contiue
desc-continue}"""
splited = [i+"}" for i in a.split("}") if i]
结果:
>>>splited
['name : base : add : data1 : data2 : {desc}', '\nname : base : add : data1 : data2 : {desc}', '\nname : base : add : data1: data2 : {desc\ndesc-continue}', '\nname : base : add : data1: data2 : {desc\ndesc-contiue\ndesc-continue}']