[英]Ruby 2.0 regex and cyrillic
在ruby 2.0之前,正則表達式就是這樣的:
/\A[a-zа-я\d]+\z/i =~ 'привет' # => 0
/\A[a-z\p{Cyrillic}\d]+\z/i =~ 'привет' # => 0
我更新了ruby 2.0,它有一個bug:
/\A[a-zа-я\d]+\z/i =~ 'привет' # => nil
/\A[a-z\p{Cyrillic}\d]+\z/i =~ 'привет' # => nil
我該如何處理這個問題? 如果沒有\\d
在字符類中,它可以正常工作:
/\A[a-zа-я]+\z/i =~ 'привет' # => 0
這個bug看起來很相似,可能與我之前詢問的這個bug有關。 我把它報告給ruby trunk ,它已被接受為bug。 希望它會被修復。
這個bug好像是在ruby-head
修復的:
⮀ rvm use ruby-2.0.0-preview2
Using /home/am/.rvm/gems/ruby-2.0.0-preview2
⮀ irb
2.0.0dev :001 > regex = /\A[a-zа-я\d]+\z/i ; regex =~ 'привет'
# ⇒ nil
⮀ rvm use ruby-2.0.0-preview1
Using /home/am/.rvm/gems/ruby-2.0.0-preview1
⮀ irb
2.0.0dev :001 > regex = /\A[a-zа-я\d]+\z/i ; regex =~ 'привет'
# ⇒ nil
⮀ rvm use ruby-head
Using /home/am/.rvm/gems/ruby-head
⮀ irb
irb(main):001:0> regex = /\A[a-zа-я\d]+\z/i ; regex =~ 'привет'
# ⇒ 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.