【发布时间】:2014-08-01 05:30:11
【问题描述】:
我有一个包含很多 PGN 国际象棋文件的目录,我想从中删除移动时间(写为 [%emt {a_number}]。我写了这个脚本:
regex = /\[.emt[^\]]+\]/
directory = "path/to/files"
extension = ".pgn"
Dir.chdir(directory)
Dir.foreach(directory) do |file_name|
file_object = File.open(file_name, "r+")
contents = file_object.read
new_contents = contents.gsub(regex, "")
File.truncate(directory + "/" + file_name, 0)
file_object.puts(new_contents)
file_object.close
end
这删除了所有的移动时间,但奇怪的是它在文件的开头附加了大量的空字符(我怀疑这个数字等于文件中的字节数)。所以我用contents.delete("\0") 替换了new_contents = contents.gsub(regex, "") 行,但这只会让事情变得更糟,在文件的开头附加了更多的空字符。如何删除它们?
【问题讨论】:
标签: ruby regex file null-character