【问题标题】:Rails gsub for russian symbols用于俄语符号的 Rails gsub
【发布时间】:2012-09-14 23:22:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby gsub cyrillic


    【解决方案1】:

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

    【讨论】:

    • hm 但是他只说字母怎么说?
    • 您可能需要编辑您的初始帖子,其中包含您遇到的错误,以便我们为您提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2013-10-12
    相关资源
    最近更新 更多