Backport #6380
closed正規表現検索で大文字/小文字の対応がおかしいものがある
Description
=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
Updated by mame (Yusuke Endoh) over 12 years ago
- Status changed from Open to Assigned
- Assignee set to naruse (Yui NARUSE)
Updated by naruse (Yui NARUSE) over 12 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby master to Backport193
- Category deleted (
M17N) - Target version deleted (
1.9.3)
Updated by naruse (Yui NARUSE) over 12 years ago
- Status changed from Assigned to Closed
とりあえずその文字だけ消しておきました。
trunk では鬼雲経由ですでに修正済みです。
Updated by k_takata (Ken Takata) over 12 years ago
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ベースというところがちょっと気になるところではあります。
Updated by naruse (Yui NARUSE) over 12 years ago
- 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 さんの鬼雲のおかげで直ってますし。