2012-04-03 9 views
0

最初の4バイト、次の4バイト、もう一度4バイトを取り出し、最終行の最後の8バイトを除いて残りのファイル内容を残りの1つのバイナリファイルを処理しています。ファイルの最後の行の最後の8バイトを除いて最初の数バイトのファイルの最初の行を読み取ってファイルの残りの部分を読み取るためのRegexは何ですか?

私はこの行で試してみましたが、いくつかの繰り返しのあと、この正規表現は最初の4バイト、次の4バイト、次の4バイトのパターンの間のいくつかの行から開始します。このため、私の状態チェックに失敗します。

私は以下をしたいと思います。 ファイルの先頭行の最初の4バイトを読み取り、次に5〜7バイト、次にバイト8〜11を読み取り、ファイルの最終行の最後の8バイトを除いて残りのファイル内容を読み取ります。

Rubyではこれの正規表現は何でしょうか?

+1

をあなたが戻ってあなたの古い質問にいくつか答えを受け入れる必要があります。 – pguardiario

答えて

1

方法について:

/(.{4})(.{3})(.{4})(.*).{8}/m 
+0

ありがとう、これは私のために働いた –

2

使用すると、正規表現の代わりに#READ:

f = File.open(file_name,"rb") 
chunk1 = f.read(4) 
chunk2 = f.read(3) 
chunk3 = f.read(4) 
chunk4 = f.read(f.size - (4 + 3 + 4 + 8)) 
関連する問題