2011-11-16 95 views
3

我有空格的字符串(一個簡單的空間和一個表意空間):GSUB字符串在Ruby中的所有空間1.8

"qwe rty uiop".gsub(/[\s]+/,'') #=> "qwe rtyuiop" 

如何添加所有空間代碼(例如3000,2060,205F )在我的模式?

在Ruby 1.9中,我只是加了\u3000和其他代碼,但是它在1.8中如何呢?

回答

2

我想我找到答案。在ActiveSupport :: Multibyte :: Chars是一個UNOCODE_WHITESPACE常量。解決方案:

pattern = ActiveSupport::Multibyte::Chars::UNICODE_WHITESPACE.collect do |c| 
    c.pack "U*" 
end.join '|' 
puts "qwe rty uiop".mb_chars.gsub(/#{pattern}/,'') 
#=> qwertyuiop 
相關問題