氏名: S 学籍番号: c105sss クラス: A 1、作成したdata.txtファイル Blurry eyes ブルーリーアイズ tetsu 1994 遠くの風を 身にまとう Vivid Colors ヴィヴィッドカラーズ ken 1995 つないだ手を離したなら 夏の憂鬱 ナツノユウウツ ken 1995 夏の憂鬱に抱かれ 風にきえないで カゼニキエナイデ tetsu 1996 もう一人の僕が 〜〜〜 中略 〜〜〜 前回はL'Arc-en-Cielのベストアルバム収録曲のみのリストでしたが、今回は全シ ングルリストにしました。改良に当たって、作詞者蘭を削り、年代とその曲が収 録されているアルバム名を追加しました。時間があれば全曲分の編集もしたかっ たです。 2、作成したプログラムsearch.rb #!/usr/koeki/bin/ruby print "検索パターン: " pattern = STDIN.gets.chomp! regexp = Regexp.new(pattern,nil, "e") while line=gets if regexp =~ line print line end end 3、正規表現検索した結果(10通り) 検索パターン: hyde|yukihiro flower フラワー hyde '96 True そう 気付いていた HONEY ハニー hyde '98 ray ずっと眺めていた Heaven's Drive ヘヴンズドライブ hyde '99 arc 飽き足りないんだね Spirit dreams inside スピリットドリームズインサイド hyde '01 SMILE 目覚めても まだ killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 検索パターン: ^H HONEY ハニー hyde '98 ray ずっと眺めていた Heaven's Drive ヘヴンズドライブ hyde '99 arc 飽き足りないんだね 検索パターン: AWAKE 自由への招待 ジユウヘノショウタイ tetsu '04 AWAKE 暴走への誘惑 渋滞にて最悪 killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 叙情詩 ジョジョウシ ken '05 AWAKE 季節は色を変えて 検索パターン: (\S)\1 Blurry eyes ブルーリーアイズ tetsu '94 Tierra遠くの風を 身にまとう 夏の憂鬱 ナツノユウウツ ken '95 heavenly 夏の憂鬱に抱かれ winter fall ウィンターフォール ken '98 HEART 真っ白な時に君は攫われて forbidden lover フォービドゥンラバー ken '98 arc あぁ 凍える暗い海へ Heaven's Drive ヘヴンズドライブ hyde '99 arc 飽き足りないんだね Pieces ピーシーズ tetsu '99 arc 泣かないで 泣かないで Driver's High ドライバーズハイ tetsu '99 arc 熱くなった 銀の LOVE FLIES ラブフライズ ke '99 REAL 果てしない君のもとへ NEO UNIVERSE ネオユニヴァース ken '00 REAL 傾きかけた天秤の上で finale フィナーレ tetsu '00 REAL 淡く儚げな 美しさ STAY AWAY ステイアウェイ tetsu '00 REAL 抜け出した大地で killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 検索パターン: 0?5 Vivid Colors ヴィヴィッドカラーズ ken '95 heavenly つないだ手を離したなら 夏の憂鬱 ナツノユウウツ ken '95 heavenly 夏の憂鬱に抱かれ killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 叙情詩 ジョジョウシ ken '05 AWAKE 季節は色を変えて LINK リンク tetsu '05 覚えているかい 幼い頃から 検索パターン: \bそう flower フラワー hyde '96 True そう 気付いていた 検索パターン: ^\w+[ぁ-ん] 夏の憂鬱 ナツノユウウツ ken '95 heavenly 夏の憂鬱に抱かれ 風にきえないで カゼニキエナイデ tetsu '96 True もう一人の僕が 瞳の住人 ヒトミノジュウニン tetsu '04 SMILE 数え切れない でも少しの 自由への招待 ジユウヘノショウタイ tetsu '04 AWAKE 暴走への誘惑 渋滞にて最悪 検索パターン: ^\w+\s+\w*ー flower フラワー hyde '96 True そう 気付いていた HONEY ハニー hyde '98 ray ずっと眺めていた Pieces ピーシーズ tetsu '99 arc 泣かないで 泣かないで finale フィナーレ tetsu '00 REAL 淡く儚げな 美しさ 検索パターン: ^\w+\s+\w+\s+\w*ー Blurry eyes ブルーリーアイズ tetsu '94 Tierra遠くの風を 身にまとう Vivid Colors ヴィヴィッドカラーズ ken '95 heavenlyつないだ手を離したなら winter fall ウィンターフォール ken '98 HEART 真っ白な時に君は攫われて forbidden lover フォービドゥンラバー ken '98 arc あぁ 凍える暗い海へ NEO UNIVERSE ネオユニヴァース ken '00 REAL 傾きかけた天秤の上で killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 検索パターン: ^\w+\s+(\w+\s)+\w*ー Spirit dreams inside スピリットドリームズインサイド hyde '01 SMILE 目覚めても まだ 検索パターン: ^\w+\s+(\w*\s)*\w*ー Blurry eyes ブルーリーアイズ tetsu '94 Tierra遠くの風を 身にまとう Vivid Colors ヴィヴィッドカラーズ ken '95 heavenlyつないだ手を離したなら flower フラワー hyde '96 True そう 気付いていた Lies and Truth ライズアンドトゥルース ken '96 True 君が見えなくて winter fall ウィンターフォール ken '98 HEART 真っ白な時に君は攫われて DIVE TO BLUE ダイブトゥブルー tetsu '98 arc 羽ばたくのさ すぐに HONEY ハニー hyde '98 ray ずっと眺めていた forbidden lover フォービドゥンラバー ken '98 arc あぁ 凍える暗い海へ Pieces ピーシーズ tetsu '99 arc 泣かないで 泣かないで NEO UNIVERSE ネオユニヴァース ken '00 REAL 傾きかけた天秤の上で finale フィナーレ tetsu '00 REAL 淡く儚げな 美しさ Spirit dreams inside スピリットドリームズインサイド hyde '01 SMILE 目覚めても まだ READY STEADY GO レディステディゴー tetsu '04 SMILE READY STEADY NEVER killing Me キリングミー hyde '05 AWAKE 手を伸ばしたら届きそうな New World ニューワールド yukihiro'05 AWAKE ここにある確かなリアリティ 4, 利用した正規表現の説明 hyde|yukihiro hyde「または」yukihiroが含まれる文字列にヒットす る。 ^H 行の先頭がHで始まる文字列にヒットする。 (\S)\1 ()はグルーピングといい、正規表現の一部をくくっ てひとつにまとめる機能である。\Sは「空白以外の文 字」を意味する。\数字はn番目の括弧にマッチした文 字列そのもの、ここでは\1としたので1番目の括弧に マッチした文字列そのものに置き換えられ、「空白以 外の文字」(rr,00,ここ,など)が含まれる行にヒット する。 0?5 5の直前に0が1個あるか、なくてもよい。 \bそう 「そう」という単語が含まれる行にヒットする。\bは 「単語の区切り」を意味する。 ^\w+[ぁ-ん] \wは「1文字以上の文字列」を意味し、+は「直前のパ ターンが一回以上」という意味である。[]内に含まれ る文字列にヒットすると言う意味なので、先頭の単語 =曲名に平仮名が含まれる行がヒットする。 ^\w+\s+\w*ー \sは「空白」を意味する。*は「直前のパターンが0回以上」を 意味する。 タイトルのカナに「ー」が付く曲を探すため用いた。 ここではタイトルにスペースが入る曲は当てはまらな い。 ^\w+\s+\w+\s+\w*ー 上記の応用で、今度はタイトルにスペースが一回入る 曲が当てはまる。 ^\w+\s+(\w+\s)+\w*ー もうひとつ応用して丸括弧を用い、タイトルにスペー スが2つ以上入る曲が当てはまる。 ^\w+\s+(\w*\s)*\w*ー 応用編ラスト。上記の一部の+と*を入れ替えると、カ ナに「ー」が含まれる曲を全て検索することができる。 5、考察 正規表現の微妙な違いを利用して様々な検索ができた。\wや\sなどの表現 を組み合わせることができてよかった。データファイルの情報を整理し たことで、以前よりも検索がしやすくなった。しかし、曲の情報では、 名簿のように一部だけ共通しているというケースが少ないため、検索の バリエーションが出しにくかった。プログラムの特性か、$(末尾マッチ)で の検索が出来なかった。 6、参考文献 歌詞検索サイト「うたまっぷ」 http://www.utamap.com/ L'Arc-en-Ciel公式サイト「L'Arcom.net」 http://www.larcom.net/ 7、感想 単純な正規表現しか使えないのではないかと不安でしたが、何回も試し てみるうちに組み合わせによる検索ができ、自分としては満足です。同 じ正規表現を使って検索数を稼ぐのはあえて控えたのですが、後 半のものは似ているようで全く違う検索結果が出たのがおもしろかったので採 用しました。