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

 ささだです.

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

 ささだです.

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

From: "Hiromitsu Matsuura" <urax@...6.so-net.ne.jp>
Date: 2007-11-21 01:25:51 UTC
List: ruby-list #44260
おはようございます。

るびきちさん、hataniさん
サンプルもつけていただいてありがとうございました。

サンプルを実行させていただいたところ、正しく動作いたしました。
ほんとにありがとうございました。

1点後学の為に教えてください。
現在、Fedora 8で開発をしておりまして、デフォルトのファイル作成がUTF-8
のようなので、UTF-8でマッチングをしようとしておりました。

るびきちさんにご指摘いただいたNKFのオプションを-u => -wに変更してみたのですが、 

こちらはまだ動作せずにいます。
重ね重ねで申し訳ありませんが、教えていただけたら助かります。
よろしくお願いします。

===============================================================
require 'net/http'
require "nkf"

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|
        i=NKF.nkf("-w -xm0", i)
        if /'買う'/u =~ i
            puts i
        end
    end
end
__END__
index.html
===============================================================




Hiromitsu Matsuura
----- Original Message ----- 
From: "hantani" <hantani@miyoshi.elec.co.jp>
To: "ruby mailing list" <ruby-list@ruby-lang.org>
Sent: Wednesday, November 21, 2007 9:05 AM
Subject: [ruby-list:44258] Re: Rubyにおける日本語の正規表現のマッチングにつきまして


> uraxさん、おはようございます。
> hantaniです。
>
> yahoo.co.jpはEUCみたいなのでkconvでEUCに変換してみました。
> #出力はsjisにしています
> -----------------------------------------
> require 'net/http'
> require "nkf"
> require "kconv"
>
> host = 'yahoo.co.jp'
> h = Net::HTTP.new(host, 80)
>
> str="買う".toeuc
>
> while htmlfile = DATA.gets
>   htmlfile = htmlfile.chomp
>   resp, data = h.get("/" + htmlfile, nil)
>   data.each do |i|        #i=NKF.nkf("-u -xm0", i)
>       if /#{str}/u =~ i
>           puts i.tosjis
>       end
>   end
> end
> __END__
> index.html
> -----------------------------------------
>
> Hiromitsu Matsuura さんは書きました:
>> はじめて投稿させていただきます。
>> uraxと申します。
>>
>> Rubyで日本語の正規表現のマッチングを行おうと思っています。
>> やろうとしていることは、htmlファイルを取得して、その中に指定した日本語が
>> ある場合のみ特定の処理をしようというものです。
>>
>> 試しに、yahoo.co.jp/index.htmlのファイルを取得して、'買う'という言葉が出
>> た行だけ表示しようと
>> 以下のようなコードを書いてみたのですが、何も表示されずに思ったとおりに動
>> 作しませんでした。
>>
>> ただ、'買う'という部分を別のアルファベット等に変えた場合には、動作するので 
>> 
>> 日本語の処理が間違っているのかなと考えています。
>>
>> 初歩的な質問で申し訳ないのですが、何か情報がありましたら教えていただけな
>> いでしょうか。
>> お手数をおかけしますが、よろしくお願いします。
>>
>> ==================================================================
>> require 'net/http'
>> require "nkf"
>>
>> 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|        i=NKF.nkf("-u -xm0", i)
>>        if /買う/u =~ i
>>            puts i
>>        end
>>    end
>> end
>> __END__
>> index.html
>>
>> ==================================================================
>>
>>
>>
>>
>>
>
> 


In This Thread