[ruby-trunk - Bug #6380][Open] 正規表現検索で大文字/小文字の対応がおかしいものがある

Issue #6380 has been reported by 5.5 (5 5).


Bug #6380: 正規表現検索で大文字/小文字の対応がおかしいものがある
https://bugs.ruby-lang.org/issues/6380

Author: 5.5 (5 5)
Status: Open
Priority: Normal
Assignee:
Category: M17N
Target version: 1.9.3
ruby -v: ruby 1.9.3p202 (2012-04-27 revision 35484)
[x86_64-darwin10.8.0]

=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

Issue #6380 has been updated by mame (Yusuke E.).

Status changed from Open to Assigned
Assignee set to naruse (Yui NARUSE)


Bug #6380: 正規表現検索で大文字/小文字の対応がおかしいものがある
https://bugs.ruby-lang.org/issues/6380#change-26423

Author: 5.5 (5 5)
Status: Assigned
Priority: Normal
Assignee: naruse (Yui NARUSE)
Category: M17N
Target version: 1.9.3
ruby -v: ruby 1.9.3p202 (2012-04-27 revision 35484)
[x86_64-darwin10.8.0]

=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

Issue #6380 has been updated by naruse (Yui NARUSE).

Status changed from Assigned to Closed

とりあえずその文字だけ消しておきました。
trunk では鬼雲経由ですでに修正済みです。

Backport #6380: 正規表現検索で大文字/小文字の対応がおかしいものがある
https://bugs.ruby-lang.org/issues/6380#change-26446

Author: 5.5 (5 5)
Status: Closed
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

Issue #6380 has been updated by k_takata (Ken Takata).

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ベースというところがちょっと気になるところではあります。

Backport #6380: 正規表現検索で大文字/小文字の対応がおかしいものがある
https://bugs.ruby-lang.org/issues/6380#change-26449

Author: 5.5 (5 5)
Status: Closed
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

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