#!/usr/bin/env ruby # coding: utf-8 db = {} open("syllabus.txt", "r") do |df| while line = df.gets if /^科目名:\s*(.*)/ =~ line # 行頭「科目名:」空白(任意文字列) key = $1 db[key] = Hash.new elsif /^(\S+):\s*(.*)/ =~ line # 行頭(非空白続き):空白(任意文字列) db[key][$1] = $2 end end end p db # 結果確認用