2012-09-14 67 views
1

在我的Rails應用程序中,我需要格式化我的字符串,以便它只包含字母,而不包含符號。但主要的麻煩在於字符串是用俄語寫的,那麼它怎麼做呢?對於英文和字母和數字我這樣做:俄羅斯符號的Rails gsub

ArtLookup.get_analog(@articles.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, '')) 

但如何做到這一點爲俄語字母? (首先是А,最後是Я)。只有字母和刪除空格?

回答

5

使用\p{Cyrillic},它匹配任何西里爾字符。

例子:

1.9.3p194 :001 > s = "helloЯ" 
=> "helloЯ" 
1.9.3p194 :002 > s.gsub(/\p{Cyrillic}/, '') 
=> "hello" 

特殊字符在Ruby中處理更多信息:http://ruby-doc.org/core-1.9.3/Regexp.html

編輯答案:

如果只想西裏爾字母的一個子集,我害怕你必須建立自己的一套。

爲此,您可以嘗試使用範圍:/[а-я]+/i,這應該工作。如果沒有,只需明確指定您的字母:/[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]+/i

+0

嗯但如何說他只有字母? – byCoder

+0

只有俄文字母 – byCoder

+0

請參閱我編輯的答案 – nbarraille