2

在我的 Rails 应用程序中,我需要格式化我的字符串,使其仅包含字母,不包含符号。但主要问题是字符串是俄语的,那怎么办呢?对于 rnglish 和字母和数字,我这样做:

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

但是如何为俄语字母做呢?(第一个是А,最后一个是Я)。只有字母,并删除空格?

4

1 回答 1

6

使用\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

编辑答案:

如果你只想要西里尔字母的一个子集,恐怕你必须建立自己的集合。

为此,您可以尝试使用 range: /[а-я]+/i,它应该可以工作。如果没有,只需明确指定您的字母表:/[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]+/i

于 2012-09-15T00:00:30.980 回答