1
紅寶石2.0之前,正則表達式的工作是這樣的:的Ruby 2.0的正則表達式和西里爾
/\A[a-zа-я\d]+\z/i =~ 'привет' # => 0
/\A[a-z\p{Cyrillic}\d]+\z/i =~ 'привет' # => 0
我更新的紅寶石2.0,它有一個缺陷:
/\A[a-zа-я\d]+\z/i =~ 'привет' # => nil
/\A[a-z\p{Cyrillic}\d]+\z/i =~ 'привет' # => nil
我該如何處理這個問題呢?如果沒有字符類\d
,它工作正常:
/\A[a-zа-я]+\z/i =~ 'привет' # => 0
在我的盒子上(Ubuntu/Ruby2/RoR3)'regex =/\ A [a-zа-я\ d] + \ z/i; regex =〜'привет''按預期給出'0'。你是否考慮檢查你的環境? – mudasobwa 2013-04-07 14:28:44
@mudasobwa你是否驗證過你正在運行'ruby 2.0',我在'2.0'上得到了與OP相同的結果。 – fmendez 2013-04-07 14:36:36
@fmendez我正在運行'ruby-head'。我承認在'* -preview [1,2]'中有問題,最後。 – mudasobwa 2013-04-07 14:37:37