我必须解析来自不同 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'
请帮我找到最后一组的正确表达式(目前是(.*)
)。
最佳答案
具有非商业用途的 AGPL 许可证,JSDAI 是用于处理 STEP 文件的免费开源 Java 工具包
STEPcode 项目具有 BSD 许可证,因此始终免费且开源,它生成 C++ 和 python API 以及示例 STEP 文件读取器/写入器,其他开源项目(例如 BRL-CAD、SCView 和 OpenVSP)也使用该项目。
www.stepcode.org
OpenCasCade 有 C++,pythonOCC 有 python,node-occ 有 javascript API,用于处理从 STEP 翻译的数据,并且也是免费和开源的。 OCE 可跨更多平台工作并修复更多错误
关于java - STEP 文件中实例的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246867/