我必须解析来自不同 CAD 系统的一些 STEP 文件 (ISO-10303-21),它们的结构总是不同的。以下是可能出现的形式:
#95=STYLED_ITEM('',(#94),#92);
#12 = CARTESIAN_POINT ( 'NONE', ( 1.213489432997839200,
5.617300827691964000, -7.500000000000001800 ) ) ;
#263 = TEST ( 'Spaces must not be ignored here' ) ;
我认为正则表达式会对我有所帮助,所以我创建了这个(http://rubular.com/r/EtJ25Hfg77):
(\#\d+)\s*=\s*([A-Z_]+)\s*\(\s*(.*)*\s*\)\s*;
这给了我:
Match 1:
1: #95
2: STYLED_ITEM
3:
Match 2:
1: #12
2: CARTESIAN_POINT
3:
Match 3:
1: #263
2: TEST
3:
所以前两组按预期工作。但我还需要括号内的属性,如下所示:
Match 1:
1: #95
2: STYLED_ITEM
3: ''
4: (#94)
5: #92
Match 2:
1: #12
2: CARTESIAN_POINT
3: 'NONE'
4: ( 1.213489432997839200, 5.617300827691964000, -7.500000000000001800 )
Match 3:
1: #263
2: TEST
3: 'Spaces must not be ignored here'
请帮我找到最后一组((.*)
目前)的正确表达方式。