#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
Câu hỏi đặt ra là tại sao \w
bỏ qua các ký tự cyrillic?Cách chỉ định Regexp cho các ký tự cyrillic unicode trong Ruby 1.9
Tôi đã cài đặt gói ruby mới nhất từ http://rubyinstaller.org/. Dưới đây là đầu ra của tôi về ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]
Theo như tôi biết 1,9 oniguruma thư viện biểu thức chính quy có hỗ trợ đầy đủ cho các ký tự unicode.
trên Linux (ruby 1.9) gsub xóa tất cả ký tự - irb (chính): 006: 0> str2.gsub (/ \ w/u, '') => "" – andrykonchin
@aaz: không nên (xem câu trả lời của tôi); có lẽ bạn có một phiên bản cũ? –
Tôi sẽ đổi tên câu hỏi này là "Cách chỉ định Regexp cho các ký tự unicode trong Ruby 1.9", vì điều này không liên quan đến win32 cũng như không chỉ (cyrillic). –