带组的多行正则表达式

带组的多行正则表达式

我正在使用正则表达式 Python 2.7(用于 Abaqus),需要对以下代码行进行分区:

fin2Text:
(...)
7, 4, 8
8, 8, 2
*ELEMENT, type=CPS3, ELSET=Surface1
9, 5, 6, 7
10, 5, 8, 6
11, 1, 5, 7
12, 2, 8, 5
13, 7, 6, 3
14, 8, 4, 6
*ELSET,ELSET=setWPbot
1, 2, 1, 2, 
(...)

我如何告诉 Python 给我某个字符串下的所有行(这里是 '*ELEMENT, type=CPS3, ELSET=Surface1')且行数未知。

目前我用的是这个

patternOldGeoElem = re.compile('\*ELEMENT,\stype=CPS3,\sELSET=Surface1\n(((\d+),\s(\d+),\s(\d+),\s(\d+)\n?){1,})')
matchesOldGeoElem = re.findall(patternOldGeoElem, fin2Text)

我得到了一个结果,但问题是分组仍然不能按预期工作,因为我想将所有数字保存到数组或字典中,如下所示:

elemArray = [
['elemNum', 'n1', 'n2', 'n3'],
[9,5,6,7],
[10,5,8,7],
[11,1,5,7],
[12,2,8,5],
[13,7,6,3],
[14,8,4,6]]

我期待任何形式的帮助或建议。

相关内容