[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2007/11/17
[#44241] Re: Float を利用するRubyプログラム — SASADA Koichi <ko1@...> 2007/11/19

 ささだです.

[ruby-list:44257] Re: Rubyにおける日本語の正規表現のマッチングにつきまして

From: rubikitch@...
Date: 2007-11-21 00:02:23 UTC
List: ruby-list #44257
From: "Hiromitsu Matsuura" <urax@wd6.so-net.ne.jp>
Subject: [ruby-list:44256] Rubyにおける日本語の正規表現のマッチングにつきまして
Date: Wed, 21 Nov 2007 03:21:57 +0900

るびきちです。

> Rubyで日本語の正規表現のマッチングを行おうと思っています。
> やろうとしていることは、htmlファイルを取得して、その中に指定した日本語が
> ある場合のみ特定の処理をしようというものです。

まず、漢字コードは何でしょうか?
Yahoo! Japanの漢字コードがEUC-JPなので、
スクリプトの漢字コードがEUC-JPならば、そのままできます。

正規表現にuオプションをつけているのは、UTF-8文字列の比較をするつもりですか?
nkfでUTF-8に変換するのは-uではなくて-wです。

#!/usr/bin/ruby  -Ke
require 'net/http'
host = 'yahoo.co.jp'
h = Net::HTTP.new(host, 80)
while htmlfile = DATA.gets
  htmlfile = htmlfile.chomp
  resp, data = h.get("/" + htmlfile, nil)
  data.each do |i|
    if /買う/ =~ i
      puts i
    end
  end
end
__END__
index.html
# >> <td class="spacer" nowrap valign=top><small><b>買う</b></small></td>



今なRubyに書き直してみるとこんな感じです。

#!/usr/bin/ruby  -Ke
require 'open-uri'
DATA.each do |htmlfile|
  puts URI("http://yahoo.co.jp/#{htmlfile.chomp}").read.grep(/買う/)
end
__END__
index.html
# >> <td class="spacer" nowrap valign=top><small><b>買う</b></small></td>

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread