7
#coding: utf-8
str2 = "asdfМикимаус"
p str2.encoding #<Encoding:UTF-8> 
p str2.scan /\p{Cyrillic}/ #found all cyrillic characters
str2.gsub!(/\w/u,'') #removes only latin characters
puts str2

問題は、なぜ\wキリル文字を無視するのかということです。

http://rubyinstaller.org/から最新のrubyパッケージをインストールしました。これが私の出力ですruby -v

ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]

私の知る限り、1.9鬼車の正規表現ライブラリはUnicode文字を完全にサポートしています。

4

1 に答える 1

11

これは、Rubyのドキュメントで指定されているとおり\wです:同等で[a-zA-Z0-9_]あり、したがって、Unicode文字を対象としません。

[[:alnum:]]代わりに、すべてのUnicodeアルファベットおよび数字を含むものを使用することをお勧めします。ともチェック[[:word:]]してください[[:alpha:]]

于 2010-04-27T17:26:30.083 に答える