From: "naruse (Yui NARUSE)" Date: 2012-05-04T23:11:31+09:00 Subject: [ruby-dev:45622] [Backport93 - Backport #6380][Rejected] 正規表現検索で大文字/小文字の対応がおかしいものがある Issue #6380 has been updated by naruse (Yui NARUSE). Status changed from Closed to Rejected k_takata (Ken Takata) wrote: > Unicode 4.1.0では U+0241 と U+0294 が対応していたようです。 > http://ftp.unicode.org/Public/4.1.0/ucd/CaseFolding.txt > その後、Unicode 5.0で、現在と同じ U+0241 と U+0242 の対応になったようです。 > (このことから鬼車5.9.2はUnicode 4.1.0をベースにしているものと思われます。) > > Ruby 1.9.3は、Unicodeプロパティ名はUnicode 6.0に対応していますが、大文字小文字の対応は鬼車5.9.2のままのUnicode 4.1.0ベースというところがちょっと気になるところではあります。 おぉ、なるほど。 じゃあ 1.9.3 では現状で仕様ですかね。 2.0 では k_takata さんの鬼雲のおかげで直ってますし。 ---------------------------------------- Backport #6380: 正規表現検索で大文字/小文字の対応がおかしいものがある https://bugs.ruby-lang.org/issues/6380#change-26453 Author: 5.5 (5 5) Status: Rejected Priority: Normal Assignee: naruse (Yui NARUSE) Category: Target version: =begin Unicode のコードチャート * http://www.unicode.org/charts/PDF/U0180.pdf * http://www.unicode.org/charts/PDF/U0250.pdf によれば, * U+0241 LATIN CAPITAL LETTER GLOTTAL STOP * U+0242 LATIN SMALL LETTER GLOTTAL STOP が大文字/小文字の関係にあり, * U+0294 LATIN LETTER GLOTTAL STOP は「caseless」です。しかし,正規表現検索で i オプションを使うと,U+0241 と U+0294 が大文字/小文字の関係にあるかのような動作になります。 a="\u{241}" # => "Ɂ" b="\u{242}" # => "ɂ" c="\u{294}" # => "ʔ" str=a+b+c puts str.gsub(/#{a}/i, "-") # => nil puts str.gsub(/#{b}/i, "-") # => nil puts str.gsub(/#{c}/i, "-") # => nil # >> -ɂ- # >> Ɂ-ʔ # >> -ɂ- =end -- http://bugs.ruby-lang.org/