第 6 回 正規表現と検索 レポート課題 氏名: 土門千里 学籍番号: C1111122 語学クラス: 英語5 コース: 政策マネジメント 1. 筆記問題 A. 誕生日 1993年 3月 16日 「1993」「3」「16」というように西暦、月、曜日に分けて計算をする。 a) 10 進数を 2 進数に変換する。 10 進数を 2 進数に変換するためには、10 進数の数字を 2 で余りを出しながら 割っていく。この計算は商が 0 になるまで行なう。最後に余りを先頭にし、数 字を下から順に並べていくことによって、2 進数に変換した答えを求めることが できる。 0d1993 = 0b???? 1993 / 2 = 996 余り 1 996 / 2 = 498 余り 0 498 / 2 = 249 余り 0 249 / 2 = 124 余り 1 124 / 2 = 62 余り 0 62 / 2 = 31 余り 0 31 / 2 = 15 余り 1 15 / 2 = 7 余り 1 7 / 2 = 3 余り 1 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 数字を下から順に並べていくと、 11111001001 となる。 よって 0d1993 を 2 進数に変換すると 0b11111001001 となる。 0d3 = 0b???? 3 / 2 = 1 余り 1 1 / 2 = 0 余り 1 数字を下から順に並べていくと、11となる。 よって 0d3 を 2 進数に変換すると 0b11 となる。 0d16 = 0b???? 16 / 2 = 8 余り 0 8 / 2 = 4 余り 0 4 / 2 = 2 余り 0 2 / 2 = 1 余り 0 1 / 2 = 0 余り 1 数字を下から順に並べていくと、10000 となる。 よって 0d16 を 2 進数に変換すると 0b10000 となる。 上で変換された結果を元にし、2 進数で誕生日を表すと「1111100100年 11月 10000日」となる。 b) 10進数を 16 進数 に変換する。 10 進数を 16 進数に変換するには、10 進数を 16 で割っていく。 商が 0 になるまで余りを出しながら割っていく。 最後に余りを先頭にし、数字を下から順に並べていくことによって、16 進数に 変換した答えを求めることができる。 0d1993 = 0x???? 1993 / 16 = 124 余り 9 124 / 16 =  7 余り 12 7 / 16 = 0 余り 7 数字を下から順に並べていくと、7,12,9となる。 12 は、16 進数では C で対応しているため C となる。 よって 0d1993 を 16 進数に変換すると 0x7C9 となる。 0d3 = 0x???? 3 / 16 = 0 余り 3 よって 0d3 を 16 進数に変換すると 0x3 となる。 0d16 = 0x???? 16 / 16 = 1 余り 0 1 / 16 = 0 余り 1 数字を下から順に並べていくと、10となる。 よって 0d16 を 16 進数に変換すると 0x10 となる。 上で変換された結果を元にし、16 進数で誕生日を表すと「7C9年 3月 10日」となる。 B. 1993年 3月 16日であるため計算式は 1993 + 3 + 16 となる。また、この式を計 算すると以下のようになる。 1993 + 3 + 16 = 2012 また、1993 + 3 + 16 のそれぞれ項を 16 進数に変換して和を求め、改めて 10 進数に変換して比較する。1993,3,16 を 16 進数に変換した答えは、A で計算し たため、それを利用して計算する。A で 16 進数に変換された結果を参照すると、 ・0d1993 を 16 進数に変換すると、0x7C9 ・0d3 を 16 進数に変換すると、0x3 ・0d16 を 16 進数に変換すると、0x10 上記のようになる。 次に、0x7C9 + 0x3 + 0x10 を計算する。 7C9 + 3 + 10 = ??? の式を下のように表し、桁毎に計算をしていく。 7 C 9 数字だけで表した場合 7 12 9 3 3 + 1 0 -----------------> + 1 0 -------------- --------------- 7 D C 7 13 12 ・計算方法 C + 0 + 1 = 12 + 0 + 1 ( C は 16進数で 12 を表す ) = 13 = D ( 16 進数では 13 を D で表す ) 9 + 3 + 0 = 12 = C ( 16 進数では 12 を C で表す ) よって 7C9 + 3 + 10 を計算すると 7DC となる。 7DC を 10 進数に変換する。 16 進数を 10 進数に変換する場合、まず、 7DC を 「7」「D」「C」に分け、右 から 16 の 2乗、16 の 1乗、16の 0乗を掛けていく。そして最後に全てを足し ていくと 10 進数に変換した答えを求めることが出来る。 7 * 16 の 2乗 + 13 * 16 の 1乗 + 12 * 16 の 0乗 = 1792 + 208 + 12 = 2012 16 進数 7DC を 10 進数に変換すると、0d2012 となる。 1993 + 3 + 16 と それを 16 進数 7C9 + 3 + 10 の和を求め、それを 10 進数 にした結果が 2012 と同じ結果であった。 この結果から、進数変換しても答えが変わらなかったことが分かる。 C. STDERR は、print(f)文を実行しているときに kterm にメッセージやエラーメッ セージを表示させるときに使う method である。 print(f)文の内容を kterm などの画面に表示させるためにつける。また、エラー メッセージが画面に表示されるため、エラーを見つけることができる。 2. プログラム問題 A. a) 作成したプログラムについて 都道府県名と県庁所在地、平成22年度の各都道府県の人口、そして各都道府県の 最低賃金についてまとめてみた。 b) 作成したデータファイル 北海道 Hokkaido 札幌市 Sapporoshi 705 青森県 Aomoriken 青森市 Aomorishi 647 岩手県 Iwateken 盛岡市 Moriokashi 645 宮城県 Miyagiken 仙台市 Sendaishi 675 秋田県 Akitaken 秋田市 Akitashi 647 山形県 Yamagataken 山形市 Yamagatashi 647 福島県 Hukushimaken 福島市 Hukushimashi 658 茨城県 Ibarakiken 水戸市 Mitoshi 692 栃木県 Tochigiken 宇都宮市 Utunomiyashi 700 群馬県 Gunmaken 前橋市 Maebashishi 690 埼玉県 Saitamaken さいたま市 Saitamashi 759 千葉県 Chibaken 千葉市 Chibashi 748 東京都 Tokyoto 新宿区 Shinzyukuku 837 神奈川県 Kanagawaken 横浜市 Yokohamashi 836 新潟県 Niigataken 新潟市 Niigatashi 683 富山県 Toyamaken 富山市 Toyamashi 692 石川県 Ishikawaken 金沢市 Kanazawashi 687 福井県 Hukuiken 福井市 Hukuishi 684 山梨県 Yamanashiken 甲府市 Kouhushi 690 長野県 Naganoken 長野市 Naganoshi 694 岐阜県 Gihuken 岐阜市 Gihushi 707 静岡県 Shizuokaken 静岡市 Shizuokashi 728 愛知県 Aichiken 名古屋市 Nagoyashi 750 三重県 Mieken 津市 Tsushi 717 滋賀県 Shigaken 大津市 Otsushi 709 京都府 Kyotohu 京都市 Kyotoshi 751 大阪府 Osakahu 大阪市 Osakashi 786 兵庫県 Hyogokekn 神戸市 Kobeshi 739 奈良県 Naraken 奈良市 Narashi 693 和歌山県 Wakayamaken 和歌山市 Wakayamashi 685 鳥取県 Tottoriken 鳥取市 Tottorishi 646 島根県 Shimaneken 松江市 Matsueshi 646 岡山県 Okayamaken 岡山市 Okayamashi 685 広島県 Hiroshima 広島市 Hiroshimashi 710 山口県 Yamaguchiken 山口市 Yamaguchishi 684 徳島県 Tokushimaken 徳島市 Tokushimashi 647 香川県 Kagawaken 高松市 Takamatsushi 667 愛媛県 Ehimeken 松山市 Matsuyamashi 647 高知県 Kochiken 高知市 Kochishi 645 福岡県 Hukuokaken 福岡市 Hukuokashi 695 佐賀県 Sagaken 佐賀市 Sagashi 646 長崎県 Nagasakiken 長崎市 Nagasakishi 646 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 大分県 Oitaken 大分市 Oitashi 647 宮崎県 Miyazakiken 宮崎市 Miyazakishi 646 鹿児島県 Kagoshima 鹿児島市 Kagoshimashi 647 沖縄県 Okinawaken 那覇市 Nahashi 645 c) 目的 各都道府県を最低賃金を調べたり、比較するため。 また、各都道府県の県庁所在地を調べるため。 d) 検索パターン 1) egrep "647" data_c111112.dat 最低賃金が 647 円の都道府県が検索される。 最低賃金が 647 円に当てはまらない都道府県は検索されない。 2) pan{c111112}% egrep "山" data_c111112.dat "山" という漢字が入っている都道府県、または "山" という漢字が入っている 県庁所在地がある都道府県が検索される。 "山" という漢字が入っていない都道府県、または県庁所在地がある都道府県は 検索されない。 3) egrep "[ぁ-ん]" data_c111112.dat 都道府県名または県庁所在地にひらがなが入っている県のみ検索される。 ひらがなが 1 文字も入っていない都道府県は検索されない。 4) egrep "[650-700]" data_c111112.da 最低賃金を 650円から 700 円の間に設けている都道府県のみが検索される。 最低賃金が650 円から 700 円の間に設けていない都道府県は検索されない。 5) egrep "5$" data_c111112.dat 最低賃金の下1桁が "5" とあるところのみが検索される。 "5" という数字が入っていても、最後に入っていなかった場合は検索されない。 6) egrep "t+o" data_c111112.dat t の後に o がくる都道府県、または県庁所在地のある都道府県が検索される。 t と o が含まれていても、t の後に o が来なければ検出されない。 7) egrep "^愛" data_c111112.dat "愛"と先頭につく都道府県のみが検索される。 愛媛県と愛知県が検索されると予想する。 e) 実行した結果 1) pan{DOMON Chisato}% egrep "647" data_c111112.dat [~/Ruby] 青森県 Aomoriken 青森市 Aomorishi 647 秋田県 Akitaken 秋田市 Akitashi 647 山形県 Yamagataken 山形市 Yamagatashi 647 徳島県 Tokushimaken 徳島市 Tokushimashi 647 愛媛県 Ehimeken 松山市 Matsuyamashi 647 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 大分県 Oitaken 大分市 Oitashi 647 鹿児島県 Kagoshima 鹿児島市 Kagoshimashi 647 2) pan{c111112}% egrep "山" data_c111112.dat [~/Ruby] 山形県 Yamagataken 山形市 Yamagatashi 647 富山県 Toyamaken 富山市 Toyamashi 692 山梨県 Yamanashiken 甲府市 Kouhushi 690 和歌山県 Wakayamaken 和歌山市 Wakayamashi 685 岡山県 Okayamaken 岡山市 Okayamashi 685 山口県 Yamaguchiken 山口市 Yamaguchishi 684 愛媛県 Ehimeken 松山市 Matsuyamashi 647 3) pan{c111112}% egrep "[ぁ-ん]" data_c111112.dat [~/Ruby] 埼玉県 Saitamaken さいたま市 Saitamashi 759 4) pan{c111112}% egrep "[650-700]" data_c111112.dat [~/Ruby] 北海道 Hokkaido 札幌市 Sapporoshi 705 青森県 Aomoriken 青森市 Aomorishi 647 岩手県 Iwateken 盛岡市 Moriokashi 645 宮城県 Miyagiken 仙台市 Sendaishi 675 秋田県 Akitaken 秋田市 Akitashi 647 山形県 Yamagataken 山形市 Yamagatashi 647 福島県 Hukushimaken 福島市 Hukushimashi 658 茨城県 Ibarakiken 水戸市 Mitoshi 692 栃木県 Tochigiken 宇都宮市 Utunomiyashi 700 群馬県 Gunmaken 前橋市 Maebashishi 690 埼玉県 Saitamaken さいたま市 Saitamashi 759 千葉県 Chibaken 千葉市 Chibashi 748 東京都 Tokyoto 新宿区 Shinzyukuku 837 神奈川県 Kanagawaken 横浜市 Yokohamashi 836 新潟県 Niigataken 新潟市 Niigatashi 683 富山県 Toyamaken 富山市 Toyamashi 692 石川県 Ishikawaken 金沢市 Kanazawashi 687 福井県 Hukuiken 福井市 Hukuishi 684 山梨県 Yamanashiken 甲府市 Kouhushi 690 長野県 Naganoken 長野市 Naganoshi 694 岐阜県 Gihuken 岐阜市 Gihushi 707 静岡県 Shizuokaken 静岡市 Shizuokashi 728 愛知県 Aichiken 名古屋市 Nagoyashi 750 三重県 Mieken 津市 Tsushi 717 滋賀県 Shigaken 大津市 Otsushi 709 京都府 Kyotohu 京都市 Kyotoshi 751 大阪府 Osakahu 大阪市 Osakashi 786 兵庫県 Hyogokekn 神戸市 Kobeshi 739 奈良県 Naraken 奈良市 Narashi 693 和歌山県 Wakayamaken 和歌山市 Wakayamashi 685 鳥取県 Tottoriken 鳥取市 Tottorishi 646 島根県 Shimaneken 松江市 Matsueshi 646 岡山県 Okayamaken 岡山市 Okayamashi 685 広島県 Hiroshima 広島市 Hiroshimashi 710 山口県 Yamaguchiken 山口市 Yamaguchishi 684 徳島県 Tokushimaken 徳島市 Tokushimashi 647 香川県 Kagawaken 高松市 Takamatsushi 667 愛媛県 Ehimeken 松山市 Matsuyamashi 647 高知県 Kochiken 高知市 Kochishi 645 福岡県 Hukuokaken 福岡市 Hukuokashi 695 佐賀県 Sagaken 佐賀市 Sagashi 646 長崎県 Nagasakiken 長崎市 Nagasakishi 646 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 大分県 Oitaken 大分市 Oitashi 647 宮崎県 Miyazakiken 宮崎市 Miyazakishi 646 鹿児島県 Kagoshima 鹿児島市 Kagoshimashi 647 沖縄県 Okinawaken 那覇市 Nahashi 645 5) pan{c111112}% egrep "5$" data_c111112.dat [~/Ruby] 北海道 Hokkaido 札幌市 Sapporoshi 705 宮城県 Miyagiken 仙台市 Sendaishi 675 岡山県 Okayamaken 岡山市 Okayamashi 685 高知県 Kochiken 高知市 Kochishi 645 福岡県 Hukuokaken 福岡市 Hukuokashi 695 沖縄県 Okinawaken 那覇市 Nahashi 645 6) pan{c111112}% egrep "t+o" data_c111112.dat [~/Ruby] 茨城県 Ibarakiken 水戸市 Mitoshi 692 東京都 Tokyoto 新宿区 Shinzyukuku 837 京都府 Kyotohu 京都市 Kyotoshi 751 鳥取県 Tottoriken 鳥取市 Tottorishi 646 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 7) pan{DOMON Chisato}% egrep "^愛" data_c111112.dat [~/Ruby] 愛知県 Aichiken 名古屋市 Nagoyashi 750 愛媛県 Ehimeken 松山市 Matsuyamashi 647 f) 結果の考察 1) 647 円以外の賃金設定をしていた都道府県が検索されなかったことは、プログラ ム実行結果によって明らかであるが、逆に、最低賃金を 647 円に設定していた にもかかわらず検出されていない都道府県がないかをデータファイルを参考にし て調べた。 ・最低賃金が 647 円に設定されている都道府県 1. 青森県 2. 秋田県 3. 山形県 4. 徳島県 5. 愛媛県 6. 熊本県 7. 大分県 8. 鹿児島県 ・実行した結果 pan{DOMON Chisato}% egrep "647" data_c111112.dat [~/Ruby] 青森県 Aomoriken 青森市 Aomorishi 647 秋田県 Akitaken 秋田市 Akitashi 647 山形県 Yamagataken 山形市 Yamagatashi 647 徳島県 Tokushimaken 徳島市 Tokushimashi 647 愛媛県 Ehimeken 松山市 Matsuyamashi 647 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 大分県 Oitaken 大分市 Oitashi 647 鹿児島県 Kagoshima 鹿児島市 Kagoshimashi 647 実行結果とデータファイルを参考して調べた結果が同じため、正しいと言える。 2) "山"という漢字が含まれている都道府県、または県庁所在地がある都道府県が検 索されたことは実行結果を見れば明らかであるが、検索漏れがなかったのかをデー タファイルを参考にして調べた。 ・"山"が含まれた都道府県、または県庁所在地がある都道府県 1. 山形県 2. 富山県 3. 山梨県 4. 和歌山県 5. 岡山県 6. 山口県 7. 愛媛県(県庁所在地が 松山市 であるため) ・実行した結果 pan{c111112}% egrep "山" data_c111112.dat [~/Ruby] 山形県 Yamagataken 山形市 Yamagatashi 647 富山県 Toyamaken 富山市 Toyamashi 692 山梨県 Yamanashiken 甲府市 Kouhushi 690 和歌山県 Wakayamaken 和歌山市 Wakayamashi 685 岡山県 Okayamaken 岡山市 Okayamashi 685 山口県 Yamaguchiken 山口市 Yamaguchishi 684 愛媛県 Ehimeken 松山市 Matsuyama 実行結果とデータファイルを参考して調べた結果が同じため、正しいと言える。 3) ひらがなが含まれた都道府県、または県庁所在地がある都道府県は実行結果によ ると埼玉県のみであるが、データファイルを参考にして調べた結果、ひらがなが 含まれた都道府県、または県庁所在地がある都道府県は埼玉県(さいたま市が県 庁所在地であるため)のみであった。 ・データファイルを参考にして調べた結果 埼玉県(県庁所在地である さいたま市 にひらがなが含まれているため) ・実行した結果 pan{c111112}% egrep "[ぁ-ん]" data_c111112.dat [~/Ruby] 埼玉県 Saitamaken さいたま市 Saitamashi 759 データファイルを参考にして調べた結果と実行結果が同じため正しいと言える。 4) 予想と違って 650円から 700 円までの最低賃金を設けている都道府県のみで はなく、全ての都道府県が検索されてしまった原因は、「5」「6」「7」「0」の 数字のいずれかがすべての最低賃金に含まれていたからだと考えられる。 そのため、全ての都道府県が検索されてしまったのではないかと考えられる。 5) 最低賃金の下1桁が "5" であるのは実行結果によって明らかではあるが、他にも あるのではないかをデータファイルを参考にして調べた。 ・データファイルを参考にした結果 1. 北海道 2. 宮城県 3. 岡山県 4. 高知県 5. 福岡県 6. 沖縄県 ・実行した結果 pan{c111112}% egrep "5$" data_c111112.dat [~/Ruby] 北海道 Hokkaido 札幌市 Sapporoshi 705 宮城県 Miyagiken 仙台市 Sendaishi 675 岡山県 Okayamaken 岡山市 Okayamashi 685 高知県 Kochiken 高知市 Kochishi 645 福岡県 Hukuokaken 福岡市 Hukuokashi 695 沖縄県 Okinawaken 那覇市 Nahashi 645 データファイルを参考にした結果と実行結果が同じであったため、正しいと言える。 6) ローマ字表記のときに t の次に o がくるものは実行結果以外にあるのかをデー タファイルを参考にして調べてみた。 また、t と o が並列していなければ検索されないということ調べるために、t と o が含まれているが並列していない都道府県も調べてみた。 ・データファイルを参考にして調べた結果 1. t と o が含まれていて、かつ並列しているもの ( [ ] の中が t と o が並列している個所 ) 1. 茨城県 Ibarakiken 水戸市 Mi[to]shi 2. 栃木県 [To]chigiken 宇都宮市 Utunomiyashi 3. 東京都 [To]kyo[to] 新宿区 Shinzyukuku 4. 富山県 [To]yamaken 富山市 [To]yamashi 5. 京都府 Kyo[to]hu 京都市 Kyo[to]shi 6. 鳥取県 [To]t[to]riken 鳥取市 [To]t[to]rishi 7. 徳島県 [To]kushimaken 徳島市 [To]kushimashi 8. 熊本県 Kumamo[to]ken 熊本市 Kumamo[to]shi 2. t と o が含まれているが、並列していないもの 1. 滋賀県 Shigaken 大津市 [Ot]sushi 2. 大分県 [O]i[t]aken 大分市 [O]i[t]ashi ・実行した結果 pan{c111112}% egrep "t+o" data_c111112.dat [~/Ruby] 茨城県 Ibarakiken 水戸市 Mitoshi 692 東京都 Tokyoto 新宿区 Shinzyukuku 837 京都府 Kyotohu 京都市 Kyotoshi 751 鳥取県 Tottoriken 鳥取市 Tottorishi 646 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 データファイルを参考に調べた結果と実行結果はあっていなかった。データファ イルを参考にして調べた結果、実行結果よりも t と o が並列している都道府県 は多く出てきた。 実行結果に出てこなかった t と o が並列してる都道府県の特長として、 t ま たは o が小文字ではなく大文字であったというところにあった。検索するとき に大文字も含めて検索するように指示しなかったためであると思われる。 なのでもう 1 度大文字も含めて検索するように指示して検索してみた。 ・大文字も含めて検索するように指示して実行した結果 pan{c111112}% egrep -i "t+o" data_c111112.dat [~/Ruby] 茨城県 Ibarakiken 水戸市 Mitoshi 692 栃木県 Tochigiken 宇都宮市 Utunomiyashi 700 東京都 Tokyoto 新宿区 Shinzyukuku 837 富山県 Toyamaken 富山市 Toyamashi 692 京都府 Kyotohu 京都市 Kyotoshi 751 鳥取県 Tottoriken 鳥取市 Tottorishi 646 徳島県 Tokushimaken 徳島市 Tokushimashi 647 熊本県 Kumamotoken 熊本市 Kumamotoshi 647 実行した結果、データファイルを参考にして調べた結果と一致した。また、t と o が含まれていても並列していないものは検索されなかった。 大文字も含まれている場合は、大文字も含めて検索するように指示した方がより 正確な検索結果が出されると考えた。 7) "愛" という文字が先頭に来ていた都道府県は、実行結果と同じ「愛知県」と 「愛媛県」のみであるのか、データファイルを参考にして調べた。 ・データファイルを参考にして調べた結果 1. 愛知県 2. 愛媛県 ・実行した結果 pan{DOMON Chisato}% egrep "^愛" data_c111112.dat [~/Ruby] 愛知県 Aichiken 名古屋市 Nagoyashi 750 愛媛県 Ehimeken 松山市 Matsuyamashi 647 データファイルを参考にして調べた結果と、実行した結果が同じであったため正し いと言える。 g) 利用した正規表現 + (plus) : 直前の文字が出現しなければならず、その出現は何回でもよい場合 に使用する。 ^ (caret) : 先頭の文字列のみを探して調べる。 $ (dollar) : 末尾の文字列のみ探して調べる。末尾にスペースがある場合は上 手く作動しないため注意。 [ ] (braket) : [ ]で括られた文字のどれかが一致するものを取り出す。 [ぁ-ん] : ひらがなの中から1文字を取り出す。 大文字を含めた検索をする場合には、egrep -i "調べたいこと" "調べたい場所" というふうに [-i] をつけて検索をする。 3. 感想 今回は 16 進数 7C9 + 3 + 10 の計算で、アルファベット( C )をどのように処 理したら良いか分からず、それが 1 番大変であった。 また、プログラムでは自分の予想した結果と実行結果が違った場合もあり、なぜ 予想した結果と実行結果が違うものになってしまったのが、原因を調べることも 大変であった原因を調べているうちに、自分が検索の指示をミスしていたことや、 データファイルの入力ミスなどが見つかった。そのようなミスがけっこうあった ため、次からは気を付けて作業をしようと思う。 普段から使っているもので、正規表現を使用しているものは携帯電話に附属して いる辞書や、携帯電話の機能説明をするもの(使い方ナビ)などであるだろう。辞 書の場合、単語を入れるだけで、その単語が含まれた言葉を全てを表示してくれ る。携帯電話の機能説明をするものであれば、検索で単語を入れれば自分の知り たい機能説明のページを表示してくれ、更には関連のあることまでも表示してく れる。 4. 参考文献 西村まどか "基礎プログラミング I 第 3 回 (キーボードから入力して計算させるには) 「入力した値をプログラムで使おう」" http://roy/~madoka/2012/r1/03/r1_03_03_theme_01_gets.html 西村まどか "基礎プログラミング I 第 6 回 (正規表現と検索) 「何回か繰り返されている文字を探したい」" http://roy/~madoka/2012/r1/06/r1_06_04_theme_02_repetation.html 西村まどか "基礎プログラミング I 第 6 回 (正規表現と検索) 「1 文字違い」" http://roy/~madoka/2012/r1/06/r1_06_06_theme_04_onecharacter.html 厚生労働省 "地域別最低賃金の全国一覧" http://www.mhlw.go.jp/seisakunitsuite/bunya/koyou_roudou/roudoukijun/minimumichiran/index.html 作者不明 "標準入力・標準出力・標準エラー出力" http://ylb.jp/2006b/proc/fileio/stdin-out.html 上綱 秀治 "CyberLibrarian 2進数、16進数と10進数" http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html