java - STEP 文件中实例的正则表达式?

标签 java regex step

我必须解析来自不同 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 工具包

http://www.jsdai.net/

STEPcode 项目具有 BSD 许可证,因此始终免费且开源,它生成 C++ 和 python API 以及示例 STEP 文件读取器/写入器,其他开源项目(例如 BRL-CAD、SCView 和 OpenVSP)也使用该项目。

www.stepcode.org

OpenCasCade 有 C++,pythonOCC 有 python,node-occ 有 javascript API,用于处理从 STEP 翻译的数据,并且也是免费和开源的。 OCE 可跨更多平台工作并修复更多错误

https://github.com/tpaviot/oce

关于java - STEP 文件中实例的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246867/

相关文章:

java - JMS奇怪的问题

java - 为什么在 android ArrayAdapter 中找不到我的 textView?

java - IntelliJ - 当 i 已知时,不会出现条件 i >= 2 的警告消息

.net - 可以处理机器生成的正则表达式 : *non-backtracking*, O(n) 的正则表达式实现?

regex - Actionscript 正则表达式的问题

php - 如何将上传的 STEP 文件转换为其他格式?

debugging - gdb可以单步执行某些opencv函数,但不能单步执行其他opencv函数

java - 输入后显示输出

c++ - 如何将 Perl 正则表达式转换为与 Boost::Regex 一起使用?

mesh - 如何将网格转换为 STEP 文件