Python - 使用正则表达式搜索字符串,然后将每个匹配追加到新列表

时间:2017-12-12 22:09:48

标签: python cad step

我目前正在尝试从具有这种格式的文件中提取一些数据:

#12 = ADVANCED_FACE ( 'NONE', ( #194 ), #326, .F. ) ;
...
#159 = EDGE_LOOP ( 'NONE', ( #21, #124, #264, #145 ) ) ;
...
#194 = FACE_OUTER_BOUND ( 'NONE', #159, .T. ) ;
...
#326 = PLANE ( 'NONE',  #352 ) ;

以下是我目前使用的方法:

faces_txt = re.findall(r'#(\d+) = ADVANCED_FACE.*;', text)

    faces = [int(face) for face in faces_txt]
    print('Face IDs = ', faces)

哪个输出:

Face IDs =  [12, 73, 99, 131, 181, 214, 244, 273, 330, 358]

如果我想为&#的每个匹配创建列表(按顺序命名为" Face1,Face2,Face3 ......"),我该怎么办? 34; ADVANCED_FACE"而不是将所有这些值都附加到同一个列表中?

1 个答案:

答案 0 :(得分:0)

如果没有关于您想要的确切输出的更多细节以及可能更多的输入,听起来您需要列表列表或列表字典。

faces_txt = re.findall(r'#(\d+) = ADVANCED_FACE.*;', text)
faces = [int(face) for face in faces_txt]

print('Face IDs = ', faces)

LoL = []
DoL = {}
for i, faceId in enumerate(faces):
    LoL.append([faceId])
    DoL.update({"Face{}".format(i): [faceId]})

print(LoL)
print(DoL)

print(DoL['Face0'])