練習 3-4 やりなおし
前回 ごにょごにょしたけど、String#scan 使えば簡単だった _| ̄|○
require 'open-uri' RUBY_VERSION # => "1.9.2" puts open('http://www.google.com', 'r:cp932', &:read). scan(%r|<a.*?href="(.*?)".*?>(.*?)</a>|m). map{|url, text|"#{text} <#{url}>"} # >> 画像 <http://www.google.co.jp/imghp?hl=ja&tab=wi> # >> 動画 <http://video.google.co.jp/?hl=ja&tab=wv> # >> 地図 <http://maps.google.co.jp/maps?hl=ja&tab=wl> # >> ニュース <http://news.google.co.jp/nwshp?hl=ja&tab=wn> # >> 書籍 <http://books.google.co.jp/bkshp?hl=ja&tab=wp> # >> Gmail <http://mail.google.com/mail/?hl=ja&tab=wm> # >> » <http://www.google.co.jp/intl/ja/options/> # >> iGoogle </url?sa=p&pref=ig&pval=3&q=http://www.google.co.jp/ig%3Fhl%3Dja%26source%3Diglk&usg=AFQjCNEmQuNg1ivauCid9lXp5yYSx6AHXw> # >> 設定 </preferences?hl=ja> # >> ログイン <https://www.google.com/accounts/Login?hl=ja&continue=http://www.google.co.jp/> # >> 検索オプション </advanced_search?hl=ja> # >> 言語ツール </language_tools?hl=ja> # >> 広告掲載 </intl/ja/ads/> # >> Google について </intl/ja/about.html> # >> Google.com in English <http://www.google.com/ncr> # >> プライバシー </intl/ja/privacy.html>
しかし控え目マッチ /.*?/ って便利ですね。
昔は /"([^"]*)"/ とかしたもんですよ。
教訓
やっぱりリファレンスマニュアルは通読。