Ruby 用什么正则表达式可以读取文件第一行的前几个字节,然后读取除最后一行的最后8个字节之外的其余文件内容?
我正在处理一个二进制文件,我想在其中检索前4个字节,后4个字节,再检索4个字节,然后检索除最后一行最后8个字节之外的其余文件内容 我试过使用这一行Ruby 用什么正则表达式可以读取文件第一行的前几个字节,然后读取除最后一行的最后8个字节之外的其余文件内容?,ruby,regex,file,byte,Ruby,Regex,File,Byte,我正在处理一个二进制文件,我想在其中检索前4个字节,后4个字节,再检索4个字节,然后检索除最后一行最后8个字节之外的其余文件内容 我试过使用这一行file.read.scan(/(.{4})(.{4})(.{4})(.*\w)(.{8}/)。每一行都有| a,b,c,d,e |但是经过一些迭代之后,这个正则表达式从中间的某一行开始,具有前4个字节,后4个字节,后4个字节的模式。因此,我的状况检查失败 我想做以下事情。 读取文件第一行的前4个字节,然后读取字节5到7,然后读取字节8到11,然后读取
file.read.scan(/(.{4})(.{4})(.{4})(.*\w)(.{8}/)。每一行都有| a,b,c,d,e |
但是经过一些迭代之后,这个正则表达式从中间的某一行开始,具有前4个字节,后4个字节,后4个字节的模式。因此,我的状况检查失败
我想做以下事情。
读取文件第一行的前4个字节,然后读取字节5到7,然后读取字节8到11,然后读取除文件最后一行的最后8个字节之外的其余文件内容
Ruby中的正则表达式是什么?如何:
/(.{4})(.{3})(.{4})(.*).{8}/m
那么:
/(.{4})(.{3})(.{4})(.*).{8}/m
使用#read而不是regexp:
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))
使用#read而不是regexp:
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))
你应该回去接受一些关于旧问题的答案。你应该回去接受一些关于旧问题的答案。