Bugs item #1186, was opened at 2004-12-10 23:11
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1186&group_id=426

Category: Core
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Kazuhiro Saga (sagak)
Assigned to: Nobody (None)
Summary: String#subの置換文字列にてエスケープの動作がおかしい

Initial Comment:
はじめまして。
佐賀と申します。
よろしくお願いします

(必要なさそうでしたが、何となくrubyforgeのアカウントも作ってしまいました)

さっそくですが、\が連続したときに、置換文字列における\&、\1などの特殊記号の動作がおかしいようです。下記の実行例のうち、★をつけたものの展開に疑問があります。

> puts 'abcde'.sub(/c/, '\&')
abcde

> puts 'abcde'.sub(/c/, '\&')
abcde

> puts 'abcde'.sub(/c/, '\\&')    ★ ab\cde になるべきでは?
ab\&de

> puts 'abcde'.sub(/c/, '\\&')   ★ ab\cde になるべきでは?
ab\&de

> puts 'abcde'.sub(/c/, '\\\&')  ★ ab\cde になるべきでは?
ab\cde

ruby 1.8.2 (2004-11-06) [i386-mswin32]
Windows2000


----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1186&group_id=426