在我的 Rails 应用程序中,我需要格式化我的字符串,使其仅包含字母,不包含符号。但主要问题是字符串是俄语的,那怎么办呢?对于 rnglish 和字母和数字,我这样做:
ArtLookup.get_analog(@articles.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, ''))
但是如何为俄语字母做呢?(第一个是А,最后一个是Я)。只有字母,并删除空格?
在我的 Rails 应用程序中,我需要格式化我的字符串,使其仅包含字母,不包含符号。但主要问题是字符串是俄语的,那怎么办呢?对于 rnglish 和字母和数字,我这样做:
ArtLookup.get_analog(@articles.ART_ARTICLE_NR.gsub(/[^0-9A-Za-z]/, ''))
但是如何为俄语字母做呢?(第一个是А,最后一个是Я)。只有字母,并删除空格?
使用\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