From: WATANABE Tetsuya Date: 1999-05-14T08:58:51+09:00 Subject: [ruby-dev:6794] Re: Ruby 1.3.3-990513 渡辺哲也です。 __const の話は、小松さんのところででているので... 正規表現で漢字(EUC のみ確認)うまく行かないものが ありました。 $ irb irb(main):001:0> a = "正規表現" "正規表現" irb(main):002:0> if a =~ /^.*/ then print $& else print '?' end 正nil irb(main):003:0> if a =~ /^.*$/ then print $& else print '?' end ?nil irb(main):004:0> if a =~ /^.*?$/ then print $& else print '?' end 正規表現nil irb(main):005:0> if a =~ /^\w*$/ then print $& else print '?' end 正規表現nil となっています。最短一致ではマッチするのですが、 最長一致については、「漢字」のみダメです。 「.」のマッチがダメで、「\w」などは OK です。 ruby-1.3.3-990507 は OK でした。 要約すると 漢字に対する「.」の「*」または「+」のマッチがう まく動きません。 確認用のスクリプトです。「t」が表示されていれば OK で「e」が表示されるところがうまく行っていませ ん。 $ ruby re8.rb ttttettetttt $ /t/src/ruby-1.3.3-990507/ruby re8.rb tttttttttttt ------------------------------ #! /usr/local/bin/ruby # /home/tetsu/src/ruby/t/re8.rb # Created: May 14,1999 Friday 06:15:55 # Author: tetsu(WATANABE Tetsuya) # $Id$ # usage: $KCODE = 'e' while DATA.gets if /.*/ print 't' else print 'e' end # p $& if /^.*$/ print 't' else print 'e' end # p $& if /^\w*$/ print 't' else print 'e' end # p $& end print "\n" __END__ 感じで終り ももんが ruby ------------------------------ -- WATANABE Tetsuya e-mail: Tetsuya_WATANABE@hp.com tetsu@jpn.hp.com