我想創建一個散列,例如在ubuntu中創建一個文件/etc/mime.types,將每一行分割爲空白和「不是詞」正則表達式搜索。以下是我的代碼。但我無法正確輸出無值的值。他們把所有其他的東西放在一起,但如果你用pp打印它們,有些人會返回爲零。有什麼建議麼?使用正則表達式對散列進行行分割
#!/usr/bin/ruby
mime = Hash.new()
File.open("/etc/mime.types", "r") do |file|
file.each_line do |line|
next if line[0] == ?#
next if line == "\n"
key, value = line.chomp.split(/\W+\s/)
mime[key] = value
end
end
if (mime.has_value?('nil') == true)
mime.sort.each {|key,value| puts "#{key} has no extensions."}
elsif(mime.has_value?('nil') == false)
mime.sort.each {|key, value| puts "#{key} has extensions #{value}"}
end
這僅僅是輸出這是最簡單的,因爲它的右前方看,當你執行
我希望
video/quicktime has extensions qt mov
**video/vnd.fvt has no extensions**
**video/vnd.motorola.video has no extensions
video/vnd.motorola.videop has no extensions**
video/vnd.mpegurl has extensions mxu
**video/vnd.mts has no extensions no**
video/vnd.nokia.interleaved-multimedia has extensions
**video/vnd.vivo has no extensions**
video/x-flv has extensions flv
video/x-la-asf has extensions lsf lsx
video/x-matroska has extensions mpv mkv
video/x-mng has extensions mng
video/x-ms-asf has extensions asf asx
video/x-ms-wm has extensions wm
video/x-ms-wmv has extensions wmv
video/x-ms-wmx has extensions wmx
video/x-ms-wvx has extensions wvx
video/x-msvideo has extensions avi
video/x-sgi-movie has extensions movie
x-conference/x-cooltalk has extensions ice
x-epoc/x-sisx-app has extensions sisx
x-world/x-vrml has extensions vrm vrml wrl
,但我得到
video/quicktime has extensions qt mov
video/vnd.fvt has extensions
video/vnd.motorola.video has extensions
video/vnd.motorola.videop has extensions
video/vnd.mpegurl has extensions mxu
video/vnd.mts has extensions
video/vnd.nokia.interleaved-multimedia has extensions
video/vnd.vivo has extensions
video/x-flv has extensions flv
video/x-la-asf has extensions lsf lsx
video/x-matroska has extensions mpv mkv
video/x-mng has extensions mng
video/x-ms-asf has extensions asf asx
video/x-ms-wm has extensions wm
video/x-ms-wmv has extensions wmv
video/x-ms-wmx has extensions wmx
video/x-ms-wvx has extensions wvx
video/x-msvideo has extensions avi
video/x-sgi-movie has extensions movie
x-conference/x-cooltalk has extensions ice
x-epoc/x-sisx-app has extensions sisx
x-world/x-vrml has extensions vrm vrml wrl
的尾部
你可以請列出你期望的輸出,你得到的輸出,爲示例文件。 – abhishek 2012-03-01 03:49:13