2

私のレールアプリでは、文字列が記号なしで文字のみで構成されるように、文字列をフォーマットする必要があります。しかし、主な問題は文字列がロシア語であることです。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 に答える