Forum: Ruby-dev [Closed] Regexp#[] doesn't consider capture name encoding

F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 Nobuyoshi Nakada (nobu)
on 2014-06-04 15:10
(Received via mailing list)
Issue #9903 has been updated by Nobuyoshi Nakada.

Status changed from Open to Closed
% Done changed from 0 to 100

Applied in changeset r46346.

----------
re.c: consider name encoding

* re.c (match_aref, rb_reg_regsub): consider encoding of captured
  names, encoding-incompatible should not match.
  [ruby-dev:48278] [Bug #9903]

----------------------------------------
Bug #9903: Regexp#[] doesn't consider capture name encoding
https://bugs.ruby-lang.org/issues/9903#change-47038

* Author: Nobuyoshi Nakada
* Status: Closed
* Priority: Normal
* Assignee:
* Category:
* Target version:
* ruby -v: r46343
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
Regexp#[]が引数の文字列やシンボルを考慮していません。

~~~ruby
key = "\xb1\xb2".force_encoding(Encoding::EUC_JP)
m = /(?<#{key}>.*)/.match("xxx")
p m[key.dup.force_encoding(Encoding::Shift_JIS)]
# => "xxx"
~~~
This topic is locked and can not be replied to.