異なる 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:
したがって、最初の 2 つのグループは想定どおりに機能しています。ただし、次のような括弧内の属性も必要です。
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'
最後のグループ (現在) の正しい表現を見つけるのを手伝ってください(.*)
。