2012-09-14 66 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